关于随机数高手帮忙!!

lshaha 2003-09-30 12:08:53
用rand()函数让它从2到12中随机选个数输出 怎么写??
能用其他方法也行!!
先谢谢
...全文
33 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
yhz 2003-09-30
  • 打赏
  • 举报
回复
To gpg(snake):
有的。虽然用软件的办法不可以,但是可以用硬件来产生真正的随机数的。

佣工7001 2003-09-30
  • 打赏
  • 举报
回复
Randomize()
blankman 2003-09-30
  • 打赏
  • 举报
回复
晚了晚了 :(
gpg 2003-09-30
  • 打赏
  • 举报
回复
伪随机数?
哪个随机数发生器不是伪随机数?
yhz 2003-09-30
  • 打赏
  • 举报
回复
To appletreestudio(飞扬在天):
那我告诉你:实际上用任何软件方法得到的随机数都是伪随机数。
这在数学上早有定论了。真正的随机只有一些物理上的量子效应变化而产生的物理量
(像电路噪声之类的)。

To all:
所以说,我们如果用软件的方法提取随机数,实际上都是伪随机数。
之所以楼上有位说要加 Randomize(),
其实这只是要系统把当前的时间作为伪随机数的发生种子。是这个更像“真”随机数罢了。
所以加和不加 Randomize() 的区别是伪随机数的“随机程度”的不同。
比较“真”的随机数产生的代码的例子如下:(当然你可以另找一个随机种子)
int iTemp[20], iSeed;
LARGE_INTEGER t1;

for(int i=0; i<20; i++)
{
QueryPerformanceCounter(&t1);
iSeed = (int)(t1.LowPart - t1.HighPart);
srand(iSeed);
iTemp[i] = random(100);
}
appletreestudio 2003-09-30
  • 打赏
  • 举报
回复
各位,这样产生的只是一个伪随机数,
如果每次运行时的系统资源占用情况相同(比如每次开机运行的程序),那么得到的随机数是相同的

我以前在编写俄罗斯方块的时候用的都是随机数提取特征,但是每次至少第一把总是相同的。

所以要产生真正的随机数,需要提取一些参数,参数应该是时时刻刻改变的,并且最好没有重复,比如采用时间或者是磁盘空间什么的,然后用这些参数 种随机种籽(就是randomize了)。这样产生的随机数才科学!

谢谢,如果大家还有什么需要讨论的,请发
rosaline_yang@yahoo.com.cn
weixing979 2003-09-30
  • 打赏
  • 举报
回复
楼主这个问题,怎么c/c++那也问了。
weixing979 2003-09-30
  • 打赏
  • 举报
回复
为什么不加Randomize()
也能产生数。
fatwave 2003-09-30
  • 打赏
  • 举报
回复
void randomize(void);// 随机数产生器
int random(int num); //产生0-num-1间的数
duduwolf 2003-09-30
  • 打赏
  • 举报
回复
楼上的都不对,应该是先
Randomize();
然后紧接着
Edit1->Text=random(11)+2;
哈哈
mme 2003-09-30
  • 打赏
  • 举报
回复
其实,随机数只要能达到随机的效果就可以了。是不是伪随机数并不重要。
weixing979 2003-09-30
  • 打赏
  • 举报
回复
呵呵!我和楼上的正好差一小时。
weixing979 2003-09-30
  • 打赏
  • 举报
回复
Edit1->Text=random(11)+2;
yulongcn 2003-09-30
  • 打赏
  • 举报
回复

rand()%11+2;
就可以了

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧