关于随机数
来源:互联网 发布:知天下邀请码 编辑:程序博客网 时间:2024/05/16 05:59
昨天去网易笔试,最后一道题实在没有时间写了,大概题目这样的:
床前明月_ ,疑是地_霜,举头望_月,低头思故_。
A.光 上 明 乡
B.上 明 乡 光
C.乡 上 明 光
D.光 乡 上 明
请你编写一函数,随机扣掉每一句的一个字,然后生成3个错误选项,一个正确选项,选项的字必须是诗里所缺的字。请写出数据结构,算法。
好像要用到随机函数rand(),srand(),查了一下他们的用法:
srand()
是用来初始化随机种子数的,因为rand的内部实现是用线性同余法做的,他不是真的随机数,只不过是因为其周期特别长,所以有一定的范围里可看成是随机的,式子如下 rand = rand*const_1 + c_var;srand函数就是给它的第一个rand值。
用 int x = rand() % 100;来生成 0 到 100 之间的随机数这种方法是不或取的,比较好的做法是: j=(int)(n*rand()/(RAND_MAX+1.0)) // 产生一个0到n之间的随机数
RAND_MAX定义在stdlib.h,其值为2147483647
此范例未设随机数种子,并不是真正意义上的随机数:
#include <iostream.h>/*产生1~~~10之间的随机数*/
#include <stdlib.h>
#include <time.h>
main()
{
int i,j;
for(i=0;i<10;i++)
{
j=1+(int)(10.0*rand()/(RAND_MAX+1.0));
cout<<j<<endl;
}
}
srand(设置随机数种子)
相关函数
rand
表头文件
#include<stdlib.h>
定义函数
void srand (unsigned int seed);
函数说明
srand()用来设置rand()产生随机数时的随机数种子。参数seed必须是个整数,通常可以利用geypid()或time(0)的返回值来当做seed。如果每次seed都设相同值,rand()所产生的随机数值每次就会一样。
范例
/* 产生介于1 到10 间的随机数值,此范例与执行结果可与rand()参照*/
#include<time.h>
#include<stdlib.h>
main()
{
int i,j;
srand((int)time(0));
for(i=0;i<10;i++)
{
j=1+(int)(10.0*rand()/(RAND_MAX+1.0));
printf(" %d ",j);
}
}
- 关于随机数
- 关于随机数!
- 关于随机数
- 关于随机数的产生
- 关于随机数的问题
- 关于随机数的文章
- 关于随机数生成
- 关于java产生随机数
- 关于随机数的例子
- 关于随机数的代码
- 关于随机数的产生!!
- 关于随机数的获取
- [转贴]关于随机数生成
- 【coding】 关于随机数的
- 关于c的随机数
- 关于随机数生成器问题
- 关于随机数_1
- 关于随机数_2
- 常用网址
- 论硕士研究生的就业尴尬
- MYSQL中文乱码解决方案
- JSP中,AJAX使用POST方式提交中文乱码问题解决
- 使用FileChannel读取文件
- 关于随机数
- Java中的对象序列化Serializable
- Andri Shevchenko
- 先面对现实,再寻找理想
- 7-zip的图标不如原来好看
- ASP.NET:C#中时间格式的转换
- 让页面提交后再滚动到提交前的位置
- 坚持学习J2EE
- Jboss4.x下第一个EJB2.x程序