什么是正整数数是怎么产生的

为了账号安全,请及时绑定邮箱和手机
如何生成3个不重复的1000以内的随机正整数作为学生Id
如何生成3个不重复的1000以内的随机正整数作为学生Id,大家有没有好的建议啊?
写下你的评论...
写下你的评论...
但是怎么把生成的随机不重复id赋值到一组学生对象中去呢?
你的if语句并没有什么用,和数组中上一个值相等就跳出循环了,可能连三个数都得不到。
写下你的评论...
写下你的评论...
Copyright (C)
All Rights Reserved | 京ICP备 号-2苹果/安卓/wp
积分 669, 距离下一级还需 131 积分
权限: 自定义头衔, 签名中使用图片
道具: 彩虹炫, 雷达卡, 热点灯, 雷鸣之声, 涂鸦板, 金钱卡, 显身卡, 匿名卡, 抢沙发下一级可获得
权限: 隐身
购买后可立即获得
权限: 隐身
道具: 金钱卡, 雷鸣之声, 彩虹炫, 雷达卡, 涂鸦板, 热点灯
在excel中 可以使用Randbetween(a,b)的语句来生成相应范围内的数字
在SAS中如何实现??
利用ranuni和rannor语句怎么实现啊?
拜托各位大神了
载入中......
%macro random(a,b,k);
retain&&seed 2;
do I=1 to &k;
t=ranuni(seed);
x1=(&a)*(1-t)+(&b)*t;
专注SAS二十年!!
mingfeng07 发表于
%macro random(a,b,k);
retain&&seed 2;非常感谢!
还有几点疑问的是:
& & 1、ranuni(seed)生成的随机数字范围是多少?与seed有没有关系?
& & 2、如果想生成1到10(包括1和10)之间的任意整数,是将X1+1后取整还是将X1取整后加1?
再次表示非常感谢
The answer from mingfeng is excellent. This is my code seen below. JingJu
a和b分别代表两个数字,随机数字的范围就是在(a,b)内,与seed没有关系,如果要取整数,则用在前面加个int()就可以了
热心帮助其他会员
总评分:&论坛币 + 50&
专注SAS二十年!!
本帖最后由 lizhewenbei 于
07:47 编辑 mingfeng07 发表于
%macro random(a,b,k);
retain&&seed 2;非常感谢
初级热心勋章
初级热心勋章
论坛好贴推荐
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
如有投资本站或合作意向,请联系(010-);
邮箱:service@pinggu.org
投诉或不良信息处理:(010-)
京ICP证090565号
京公网安备号
论坛法律顾问:王进律师下次自动登录
现在的位置:
& 综合 & 正文
给定一个十进制正整数N,写下从1开始,到N的所有整数,然后数一下其中出现的所有“1”的个数
给定一个十进制正整数N,写下从1开始,到N的所有整数,然后数一下其中出现的所有“1”的个数。
例如:N= 2,写下1,2。这样只出现了1个“1”。
N= 12,我们会写下1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12。这样,1的个数是5。
写一个函数f(N),返回1到N之间出现1的个数,比如f(12)= 5。
让我们首先想到的一个方法是:遍历1~N,统计每个数1出现的个数,相加便得到所有1的个数。
这个方法虽然很容易想,但是不是一个好方法。致命问题就是效率问题。如果给定的N很大,需要很长时间才能得出计算结果。
分析的出规律。
&1&1位数情况
这个简单,如果N = 3,那么从1到3的所有数字:1,2,3,只有个位数出现1,而且只出现一次。可以发现,N是个位数时,N &=1,那么f(N)= 1;N = 0,f(N)= 0;
&2&2位数情况
&3&3位数情况
同理分析4位数,5位数。。。。。
设N = abcde ,其中abcde分别为十进制中各位上的数字。
如果要计算百位上1出现的次数,它要受到3方面的影响:百位上的数字,百位一下(低位)上的数字,百位一上(高位)上的数字。
如果百位上数字为0,百位上可能出现1的次数由更高位决定。比如:12013,则可以知道百位出现1的情况可能是:100~199,00~2199,,.........,,一共1200个。可以看出是由更高位数字(12)决定,并且等于更高位数字(12)乘以 当前位数(100)。
如果百位上数字为1,百位上可能出现1的次数不仅受更高位影响还受低位影响。比如:12113,则可以知道百位受高位影响出现的情况是:100~199,00~2199,,.........,,一共1200个。和上面情况一样,并且等于更高位数字(12)乘以 当前位数(100)。但同时它还受低位影响,百位出现1的情况是:,一共114个,等于低位数字(113)+1。
如果百位上数字大于1(2~9),则百位上出现1的情况仅由更高位决定,比如12213,则百位出现1的情况是:100~199,,,...........,,,一共有1300个,并且等于更高位数字+1(12+1)乘以当前位数(100)。
&&&&推荐文章:
【上篇】【下篇】已知小于平角的∠AOB=10n(n≥2,且n为正整数),以点O为端点在∠AOB的内部尽可能多地作射线,使它们与OA、OB之间形成角的度数均是10的正整数倍,这样的角有个(用含n的整式表示)
解:由分析可知,我们可以OA、OB之间作(n-1)条射线将其分成:
2个(n-1)×10°、3个(n-2)×10°角、4个(n-3)×10°角、…(n-2)个20°角、(n-1)个10°角,
加上原来的1个10n°角,
共是:1+2+3+…+(n-2)+(n-1)=个.
故答案为:.
首先从最简单的开始分析:n=2时,可做一条射线,把20°角平分,得两个10°角,加上原来的20°角,共是3个角;
同理n=3时,可以画2条射线,把30°角三等分,得3个10°角,2个20°角加上原来的30°角共是6个角;
3n=4时,可以画3条射线,把40°角四等分,得4个10°角,3个20°角,2个30°角,加上原来的40°角共是10个角;
我们可以发现一些规律,∠AOB=10n度(n大于或等于2且n为正整数),
我们可以OA、OB之间作(n-1)条射线将其分成:
2个(n-1)×10°、3个(n-2)×10°角、4个(n-3)×10°角、…(n-2)个20°角、(n-1)个10°角,
加上原来的1个10n°角,
共是:1+2+3+…+(n-2)+(n-1)个角&&(当然要保证n-1、n-2…都大于0),由此得出结论即可.

我要回帖

更多关于 0属于正整数 的文章

 

随机推荐