| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 791 人关注过本帖
标题:我天啊,这是随机数吗..........
只看楼主 加入收藏
天使梦魔
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:37
帖 子:564
专家分:2754
注 册:2007-8-29
结帖率:83.33%
收藏
 问题点数:0 回复次数:4 
我天啊,这是随机数吗..........
#include <iostream>
using namespace std;
int main()
{
    int k[11]={365,1216,5415,16704,24504,11254,24698,1702,23209,5629,23830};
    int f=0,b=0;
    srand(100);
    for(int i=0;i<=10;i++){
    f=rand();
    if(f==k[i])
    b=1;
    else
    b=0;
    cout<<f<<"  "<<k[i]<<"             "<<b<<endl;
}
    cin.get();
}

一般情况人们总是用srand(time)来处理随机.这里把种子固定一个数.
我竟然看到了程序的可移植性,一般说这种程序是不可移植的.你们试试呢.

很多游戏采用随机这种东西,如果把机器内的随机值定住.那不就可以发生我们想让它发生的事了?
搜索更多相关主题的帖子: 随机数 
2007-11-30 13:52
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
你这样产生的当然每次都一样。
srand(unsigned time(0));
这样才可以产生随机,因为time函数在每个不同的时间返回的值都是有差异的(时间不同)。
所以种子值每一刻都在变

而你把100固定为种子,当然每次产生的都是有规律的。

Fight  to win  or  die...
2007-11-30 21:43
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
顶,学到了。。。没怎么用这个函数~.......

樱花大战,  有爱.
2007-12-01 14:33
first_love
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2006-11-11
收藏
得分:0 
原帖由 [bold][underline]aipb2007[/underline][/bold] 于 2007-11-30 21:43 发表 [url=http://bbs.][/url]
你这样产生的当然每次都一样。
srand(unsigned time(0));
这样才可以产生随机,因为time函数在每个不同的时间返回的值都是有差异的(时间不同)。
所以种子值每一刻都在变

而你把100固定为种子,当然每次产生的都是有规律 ...

嗯,是这样的。time()函数是根据当前系统内部时间不断地变化的,因此能产生不同的随机数。

2007-12-01 14:48
zjl138
Rank: 1
等 级:新手上路
威 望:1
帖 子:788
专家分:0
注 册:2007-11-12
收藏
得分:0 

i like linux...
2007-12-01 15:50
快速回复:我天啊,这是随机数吗..........
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026906 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved