社区
C语言
帖子详情
请教:不知道怎样才能提高随机数生成的随机性?
joyzm
2003-10-27 11:33:52
我用时间做种子,想在循环中实现[0,1]之间任意随机数(包括小数)的生成;由于是以时间做种子,所以生成的系列值几乎没有变化,不能实现对程序预期期望作用的目的?
不知道该怎么改进才能提高生成数的随机性?
谢谢
...全文
202
10
打赏
收藏
请教:不知道怎样才能提高随机数生成的随机性?
我用时间做种子,想在循环中实现[0,1]之间任意随机数(包括小数)的生成;由于是以时间做种子,所以生成的系列值几乎没有变化,不能实现对程序预期期望作用的目的? 不知道该怎么改进才能提高生成数的随机性? 谢谢
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cfpp1234
2003-10-27
打赏
举报
回复
// 如果你是寫Console application,你要在VC++的選單Project下的Setting裹
// 的General Tab,在Microsoft Foundation Classes中選Use MFC inShare DLL
// 再加入#include <afx.h>.這些要先設定好.
//
// 但如果你寫的本身就是MFC application(window program),就不須要以上的
// 設定
//
// 以下是RandomStart与Random函數,只要在程式的開始調用RandomStart,
// 之後再調用Random就可,我做了一個main以作試範
#include <iostream>
#include <time.h>
#include <afx.h>
using namespace std ;
void RandomStart()
{
unsigned int sd = (unsigned int)time( NULL ) ;
int sf = sd % 5 ;
if ( sf == 0 )
sf = 1 ;
else
sf += 1 ;
sd *= sf ;
unsigned int td = (unsigned int)GetTickCount() ; // Window API
int tf = sd % 4 ;
if ( tf == 0 )
tf = 1 ;
else
tf += 1 ;
sd *= tf ;
srand( sd );
}
template < class Type >
inline Type Random( const Type start , const Type end )
{
double rt = (double)rand() / (double)RAND_MAX ;
return (Type)( start + (end - start) * rt ) ;
}
int main()
{
RandomStart() ;
for ( int i=0; i<10; i++ )
printf("%f\n",Random(0.0,1.0)) ;
return 0 ;
}
Andy84920
2003-10-27
打赏
举报
回复
srand(time(0));
rand();
搞定这两个函数就OK了!
rand()是产生随机数函数。不过如果不种种子的话就不会有真正的随机!
tass
2003-10-27
打赏
举报
回复
up
453
2003-10-27
打赏
举报
回复
/* RAND.C: This program seeds the random-number generator
* with the time, then displays 10 random integers.
*/
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
void main( void )
{
int i;
/* Seed the random-number generator with current time so that
* the numbers will be different every time we run.
*/
srand( (unsigned)time( NULL ) );
/* Display 10 numbers. */
for( i = 0; i < 10;i++ )
printf( " %6d\n", rand() );
}
Output
6929
8026
21987
30734
20587
6699
22034
25051
7988
10104
这是MSDN中的一个例子,也是用时间做种子的,看看你的以时间做种子会不会有什么问题
daizh
2003-10-27
打赏
举报
回复
你看一下已往的关于随机数的生成问题的帖子。
HostOOP
2003-10-27
打赏
举报
回复
把你的时间精确到微秒就行了。实在不行,精确到秒也有效啊
bluedodo
2003-10-27
打赏
举报
回复
问题解决就好
lemon520
2003-10-27
打赏
举报
回复
顶!
carbon107
2003-10-27
打赏
举报
回复
srand()种子是非常重要的
joyzm
2003-10-27
打赏
举报
回复
谢谢!
问题得到圆满解决!
Java编程实践:数组操作与天气转换器的实现
内容概要:本文档为一份针对Java开发工程师的上机笔试题集,主要涵盖三个编程任务。第一个任务是编写一个程序,接收用户输入的10个整数存入数组,按降序排列后输出,并统计正数、负数和零的数量。第二个任务是创建一个简易的英中天气转换器,依据用户输入的英文首字母匹配相应的中文天气描述,支持连续查询直至用户选择退出。第三个任务是生成10个1到100之间的随机整数,找出其中的最大值和最小值,但禁止使用Arrays类的sort方法。所有任务均需用Java语言实现。 适合人群:正在准备或参加Java开发工程师职位面试的技术人员,尤其是希望
提高
实际编程能力的求职者。 使用场景及目标:①帮助考生熟悉常见的编程挑战,提升解决具体问题的能力;②增强对基本数据结构(如数组)的操作技能;③练习字符串处理与条件判断语句的应用;④掌握
随机数生成
以及数值比较的方法。 阅读建议:对于每个题目,应仔细阅读题目要求,确保理解清楚后再动手编码。尝试独立完成每道题目的解答,在遇到困难时可以参考相关资料或者向他人
请教
。完成后可以通过多次测试验证程序正确性和鲁棒性。
贪吃蛇小游戏(我自己设计的),有不足之处请指教(我的邮箱hnhefrank@126.com)
这是一个我用C写的小游戏,由于我的电脑不能运行c语言写的图形程序,所以这个程序实在字符模式下运行的,所以应该一直性要好一些. 另外,有什么不足的地方请指教
【程序笔记】第二期-
随机数生成
器
Lucky_Glass的程序笔记第二期:
随机数生成
器一些输入数据非常复杂的题目难以自己给出一组输入数据,何不利用编程来给出输入数据呢?这样的
随机数生成
器应用非常广泛,且针对任意题型都满足。但是用
随机数生成
器生成的数据并不具有特殊性,可能单次无法给出你的程序输出错误的数据,因此检查时需要调试多次。
一文解决PHP中生成随机数遇到的重复问题
这些编号是需要严格保证唯一性的,因为如果系统中订单的编号存在俩一模一样的,那造成很多数据的错乱。实现唯一编码的方式也是很多的,一般是通过底层的一些随机函数 mt_rand() uniqid()等等。项目开发中很多地方需要用到唯一编码,比如说订单、卡券、邀请码等等,这些编号是需要严格保证唯一性的,因为如果系统中订单的编号存在俩一模一样的,那造成很多数据的错乱,所以本文给大家介绍了如何解决PHP中生成随机数遇到的重复问,需要的朋友可以参考下。当我们单次去执行的时候,生成的数据是非常正确的。
【网络通讯与网络安全】网络通讯中的随机数如果不随机会怎么样?(RT-Thread技术论坛优秀文章)
本文从一个真实的场景案例出发,逐步向你解惑网络通讯中随机数的重要性;同时,也给大家提供了一个分析和解决这类问题的方法论,希望对大家有所启发和帮助。
C语言
70,018
社区成员
243,266
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章