如何在C语言和OCpython中生成随机数数

中并没有提供相应的函数,好在中提供了、、、几个函数。那么怎么使用呢?下面将简单介绍:
获取一个随机整数范围在:包括,不包括
&x =&arc4random()&%&100;
获取一个随机数范围在:),包括,包括
&y = (arc4random()&%&501)&+&500;
获取一个随机整数,范围在),包括,包括
)getRandomNumber:(int)from to:(int)to
&(int)(from&+&(arc4random()&%&(to&&&from&+&1)));
阅读(...) 评论()ios&中生成随机数
摘自: http://www.game4app.tk
ios 有如下三种随机数方法:
1. srand((unsigned)time(0)); //不加这句每次产生的随机数不变
int i = rand() % 5;
2. srandom(time(0));
int i = random() % 5;
3. int i = arc4random() % 5 ;
注:rand()和random()实际并不是一个真正的伪随机数发生器,在使用之前需要先初始化随机种子,否则每次生成的随机数一样。
arc4random()
是一个真正的伪随机算法,不需要生成随机种子,因为第一次调用的时候就会自动生成。而且范围是rand()的两倍。在iPhone中,RAND_MAX是0x7fffffff
(),而arc4random()返回的最大值则是 0& ()。
精确度比较:arc4random() & random() & rand()。
常用方法:arc4random
1、获取一个随机整数范围在:[0,100)包括0,不包括100
int x = arc4random() % 100;
2、 获取一个随机数范围在:[500,1000),包括500,不包括1000
int y = (arc4random() % 501) + 500;
3、获取一个随机整数,范围在[from,to),包括from,不包括to
-(int)getRandomNumber:(int)from to:(int)to
return (int)(from + (arc4random() % (to & from + 1)));
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。欢迎加入我们,一同切磋技术。 &
用户名: &&&
密 码: &
共有 13901 人关注过本帖
标题:如何随机产生不重复的数
等 级:论坛游民
帖 子:39
专家分:24
结帖率:100%
&&已结贴√
&&问题点数:10&&回复次数:16&&&
如何随机产生不重复的数
比如说:我要产生20个100以内的随机数且互不重复,怎么实现?百度了一下,没找到什么好的方法,不知坛子里的高人有什么妙招?要求:1:数字不能重复;2:不要使用比较;3:辅助空间尽可能地小------不用当然更好了.
搜索更多相关主题的帖子:
等 级:小飞侠
帖 子:783
专家分:2806
#include&stdio.h&&&
#include&time.h&&&
srand((unsigned)time(NULL));
这个语句可以产生不重复的随机数。
等 级:侠之大者
帖 子:114
专家分:436
在srand()后再使用rand()产生随机数,让产生的随机数对100取余即可得到了。
等 级:论坛游民
帖 子:39
专家分:24
楼上几位都没理解我的意思,我说的是产生的随机数序列里不能有相同的数!
等 级:论坛游民
帖 子:39
专家分:24
目前我能搜到的网上最好的办法是:先产生一个有序序列A[m],这个序列中的每一个数值都等于它的数组下标,然后设置一个循环for(i=0;i&m;i++),在这个循环体内产生一个不大于m的随机数n,将A[i]与A[n]交换...,这种方法不需要进行比较,也不需要额外的辅助空间,可惜它也有一个缺点:即数组的取值范围就是其下标的取值范围,如产生100个数都在100以内,产生20个数则都在20以内,不能做到产生20个100以内的(不重复)数.静候大虾出手......
等 级:小飞侠
帖 子:783
专家分:2806
恩,又试了试,果然,在20个数里总会有相同的数出现。调了好一会,也没找到合适的限制条件。
来 自:毅华
等 级:火箭侠
帖 子:720
专家分:3300
定义一个组数,存入0~99,随机取一个,做个标记,这样取20个就不会有重复。
程序代码:#include &stdio.h&
#include &time.h&
int main(void)
&int i,n,a[100];
&srand(time(0));
&for(i=0;i&100;i++)
&&&a[i]=i;
&&& n=rand()%100;
&&& if(a[n]!=-1)
&&&&&& printf(&%d &,n);
&&&&&& a[n]=-1;
&&&&&& if((++i)==20)
&printf(&\n\n&);
&return 0;
努力—前进—变老—退休—入土
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
程序代码:
#include &stdio.h&
int main(void)
&&& int num[100];
&&& int i,n;
&&& for(i=0;i&100;++i)
&&&&&&&&num[i]=200;
&&& srand(time(NULL));
&&& for(i=0;i&20;)
&&&&&&&&n=rand()%100;
&&&&&&&&if(num[n]==200)
&&&&&&&&&&&&printf(&%2d%c&,num[n]=n,++i%5?' ':'\n');
&&& puts(&&);
&&& return 0;
等 级:小飞侠
帖 子:783
专家分:2806
等 级:论坛游民
帖 子:23
专家分:32
UserYuH&&写的太棒了&&佩服&&学习
版权所有,并保留所有权利。
Powered by , Processed in 0.120903 second(s), 7 queries.
Copyright&, BCCN.NET, All Rights Reserved}

我要回帖

更多关于 java中如何生成随机数 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信