日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言(rand函数)

發布時間:2025/4/16 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言(rand函数) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C語言(rand函數)

(2006-09-24 20:41:59) 轉載
? ?

srand()就是給rand()提供種子seed

1,先看一個例子
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int 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() );
}

2.關于time.h
time.h中包含很多有趣的函數,譬如
char *ctime(long *clock)
本函數把clock所指的時間(如由函數time返回的時間)轉換成下列格式的
字符串:Mon Nov 21 11:31:54 1983/n/0

#i nclude <iostream>
#i nclude <stdlib.h>
#i nclude <time.h>
using namespace std;


void main()
{
time_t t1,t2;
char getTime[20];
char *ptstring=getTime;

int x,count=0;
x=RAND_MAX;
cout<<<'/n';
t1=time(NULL);
ptstring=ctime(&t1);

while(count<=100)
{
srand( (unsigned)time( NULL ) );
x=rand()%50;
if(x<5)
continue;
else
{
count++;
cout<<"the numth is "<<<'/n';
}
}

查看ptstring的值會顯示 "Tue Sep 13 16:31:06 2005"

3, 最后說說srand()函數
void srand(unsigned seed) 初始化隨機數發生器

有討論如下:
1.C的函數庫之所以沒有把使用系統時鐘初始化隨機種子這步重要的操作直接放進ran

d函數的實現中,我覺得至少有三個原因:
(1)可以高效產生連續的隨機數,不用每次都初始化;
(2)給程序員以更高的靈活性,因為可能在要求較高的場合,應該使用更好的的數據

做種子,而不是系統時鐘;
(3)對于只是想產生大量偽隨機數來盡興某種驗證或者統計,未必需要初始化,大不

了程序每次運行都產生同樣的一系列隨機數而已——有些情況下,這是無所謂的。

事實上有一個更重要的原因:
作為偽隨機序列產生器的rand()函數,必須具備的一個重要特性就是-》產生的序

列必須是可重現的。
這不僅僅是一個算法,相當大的程度上,它關系到代碼測試的準確性。如果算法中

使用了和rand()的結果相關的數據,通過一個可控的可重現序列,我們就有機會再現每一

次測試的過程,從而更有效的找到問題的所在。
所以這里提出一個建議,代碼中,如果rand()的函數結果關系到算法的結果,那么

,必須保證你的rand()調用是可重現的。

4,c語言里函數rand()和srand()的用法 - -

rand(void)用于產生一個偽隨機unsigned int 整數。
srand(seed)用于給rand()函數設定種子。

srand 和 rand 應該組和使用。一般來說,srand 是對 rand 進行設置。
比如:
srand((UINT)GetCurrentTime());
int x = rand() % 100;
是生成 0 到 100 之間的隨機數。

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之間的隨機

5.總結
1)srand()給rand()提供種子
2)srand()中的seed一般由時間函數得,eg srand((UINT)GetCurrentTime()) srand( (unsigned)time( NULL ) ) time()函數得到現在的系統時間...等等

http://blog.sina.com.cn/s/blog_4983d426010005wz.html?retcode=0

來源:(http://blog.sina.com.cn/s/blog_4983d426010005wz.html?retcode=0) - C語言(rand函數)_丁志中_新浪博客

總結

以上是生活随笔為你收集整理的C语言(rand函数)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 中文字幕欧美另类精品亚洲 | 五月婷婷视频在线观看 | 人人澡人人澡人人 | 久久久7777 | 午夜九九 | 国产一区91 | 丝袜操 | 黑人一级 | 99久久亚洲精品 | 国产精品hd | 射网站 | 五月天激情视频在线观看 | 欧美视频直播网站 | 免费午夜视频在线观看 | 字幕网av | 国产激情av一区二区三区 | 在线成人免费视频 | av中文资源| 亚洲va在线| 日韩精品高清在线 | 亚洲福利一区二区三区 | 免费无码av片在线观看 | 91精品在线看 | 国产日韩精品视频 | 西川结衣在线观看 | 欧美另类videossexo高潮 | xxxx色 | 亚洲精品乱码 | 国产成人99久久亚洲综合精品 | 欧美成视频 | 伊人久久影视 | 久久91亚洲精品中文字幕奶水 | 无码人妻一区二区三区精品视频 | 亚洲一区二区三区欧美 | 日本妈妈3 | 毛茸茸毛片 | 亚洲综合不卡 | 蜜桃视频在线观看一区二区 | 久久久久人妻一道无码AV | 91传媒网站 | 亚洲一区二区在线看 | 久久精品视频无码 | 欧av在线| 欧美一级性视频 | 久久午夜国产精品 | 青青草一区 | 午夜激情免费 | 三区四区| 99re这里只有精品首页 | 久久亚洲精少妇毛片午夜无码 | 无码成人精品区一级毛片 | 国产成人精品一区 | 国产一级黄| 天天操天天拍 | ,亚洲人成毛片在线播放 | 亚洲乱码精品久久久久 | 男人疯狂高潮呻吟视频 | www视频在线观看网站 | 亚洲一区二区三区综合 | 三级4级全黄60分钟 成人自拍视频 | 中文字幕欧美亚洲 | 一区在线播放 | 欧美日韩午夜精品 | 污片网站在线观看 | 26uuu欧美日本 | 9999久久久久 | 欧美日韩色综合 | 嫦娥性艳史bd | 精品一区二区三区四区 | 日韩免费av一区二区 | 色福利网| 中国新婚夫妻性猛交 | 瑟瑟视频在线观看 | av中文字幕一区二区三区 | 久久久久久久久久久久久久久久久久久 | 啪啪五月天 | av线上免费观看 | 国产精品自拍av | 国产九九热视频 | 黄色录象片 | 高清一区二区在线 | 涩涩99| 99久久综合网 | 国产精品一区二区av日韩在线 | 亚洲国产精品久久 | 久久午夜夜伦鲁鲁一区二区 | 亚洲一级电影 | 黑人黄色大片 | 久久久久久欧美精品se一二三四 | 日韩欧美激情在线 | 婷婷激情综合网 | www视频在线免费观看 | 中文字幕在线免费 | 亚洲精品高清视频在线观看 | 大奶av| 在线免费日韩av | 日韩国产激情 | 色亚洲视频 | 欧美成网站 |