導航:首頁 > 編程系統 > linuxrand

linuxrand

發布時間:2024-06-11 06:59:55

『壹』 linux中,C語言for語句中的隨機數種子。

標准庫<cstdlib>(被包含於<iostream>中)提供兩個幫助生成偽隨機數的函數:
函數一:int rand(void);

從srand (seed)中指定的seed開始,返回一個[seed, RAND_MAX(0x7fff))間的隨機整數。
函數二:void srand(unsigned seed);

參數seed是rand()的種子,用來初始化rand()的起始值。
可以認為rand()在每次被調用的時候,它會查看:
1) 如果用戶在此之前調用過srand(seed),給seed指定了一個值,那麼它會自動調用srand(seed)一次來初始化它的起始值。
2) 如果用戶在此之前沒有調用過srand(seed),它會自動調用srand(1)一次。
根據上面的第一點我們可以得出:
1) 如果希望rand()在每次程序運行時產生的值都不一樣,必須給srand(seed)中的seed一個變值,這個變值必須在每次程序運行時都不一樣(比如到目前為止流逝的時間)。
2) 否則,如果給seed指定的是一個定值,那麼每次程序運行時rand()產生的值都會一樣,雖然這個值會是[seed, RAND_MAX(0x7fff))之間的一個隨機取得的值。
3) 如果在調用rand()之前沒有調用過srand(seed),效果將和調用了srand(1)再調用rand()一樣(1也是一個定值)。

#include <ctime>
//…
srand((unsigned)time(0));
for(int i=0;i<100;i++)
{
ran_num=rand() % 6;
cout<<ran_num<<" ";
}

這樣運行,每次均可得到100個不同的偽隨機數。

『貳』 語言 php 在64位linux下 imagepng()無法生成圖片

你有沒有去除BMO頭,有時會因bmo的原因而產生不了圖片,你可以試一下下面這個代碼

<?php
$gd_support=extension_loaded('gd');
if($gd_support)$gd_info=gd_info();else$gd_info=array();
$im=imagecreatetruecolor(175,60);
$bule=imagecolorallocate($im,100,255,255);
$imgcolor=imagecolorallocate($im,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));
imagefill($im,0,0,$blue);
for($i=0;$i<4;$i++){
imageline($im,rand(0,20),0,100,rand(0,60),$imgcolor);
}
for($i=0;$i<100;$i++){
imagesetpixel($im,rand(0,50),rand(0,30),$imgcolor);
}
$str=substr(str_shuffle(''),0,4);
imagestring($im,4,10,10,$str,$imgcolor);
ob_clean();
header('content-type:image/png');
imagepng($im);
imagedestroy($im);
?>

『叄』 Linux操作系統如何獲取隨機數

如何設置種子呢?一般就 用time函數返回當前時間即可。一般來講,這樣的做法基本上就可以了,因為雖然我們用的是隨機數,但是由於種子不同,從上億的數中去猜測我們的種子幾乎 是不可能的。例如:#include #include #include #define random(x) (rand()%x) void main() { srand((int)time(0));for(int x=0;x 0) { unsigned int r;int i;for (i = 0; i < 512; i++) { read (fd, &r, sizeof (r));ticks += r;} close (fd);} srand (ticks);printf("init finished ");} unsigned int new_rand () { int fd;unsigned int n = 0;fd = open ("/dev/urandom", O_RDONLY);if (fd > 0) { read (fd, &n, sizeof (n));} close (fd);return n;} int main () { int n, i;init_random ();n = rand ();printf ("n=%d ", n);for(i=0;i

『肆』 c語言用linux的ubuntu編程的時候b=rand()%3是把1到3的隨機數賦給b的意思嗎

是把 0,1,2中任意一個數賦值給b

『伍』 Linux下的random()和srand(arg), rand()這兩個生成的隨機數有什麼區別。

首先我把這三個函數原型給你看一下
long random(void);
int rand(void);
void srand(unsigned seed);
random返回的是一個0到(2^31 - 1)的long類型整數
rand返回的是一個0到RAND_MAX的int類型整數

而你這里產生的隨機數序列是一樣的,這個很好解釋,因為你知道srand,但是你卻不知道還有一個srandom,這個函數是為random設置種子的,參數和srand一樣。
我的幫助手冊上甚至是這么寫的:
The random() and srandom() functions have (almost) the same calling sequence
and initialization properties as the rand(3) and srand(3) functions. The
difference is that rand(3) proces a much less random sequence -- in fact,
the low dozen bits generated by rand go through a cyclic pattern. All of
the bits generated by random() are usable. For example, `random()&01' will
proce a random binary value.

=============================
希望我的回答能給你帶來幫助

『陸』 Linux命令行生成隨機密碼的方法有哪些

生成一個隨機密碼
對於下面的任何一種方法,你可以通過簡單的修改來生成特定長度的密碼,或者只使用其輸出結果的前N位。希望你正在使用一些類似於LastPass的密碼管理器,這樣你就不用自己記住這些隨機生成的密碼了。
1. 這種方法使用SHA演算法來加密日期,並輸出結果的前32個字元:

Shell

1

date +%s | sha256sum | base64 | head -c 32 ; echo

2. 這種方法使用內嵌的/dev/urandom,並過濾掉那些日常不怎麼使用的字元。這里也只輸出結果的前32個字元:

Shell

1

< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-32};echo;

3. 這種方法使用openssl的隨機函數。如果你的系統也許沒有安裝openssl,你可以嘗試其它九種方法或自己安裝openssl。

Shell

1

openssl rand -base64 32

4. 這種方法類似於之前的urandom,但它是反向工作的。Bash的功能是非常強大的!

1

tr -cd '[:alnum:]' < /dev/urandom | fold -w30 | head -n1

5. 這種方法使用string命令,它從一個文件中輸出可列印的字元串:

Shell

1

strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d '\n'; echo

6. 這是使用urandom的一個更簡單的版本

Shell

1

< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c6

7. 這種方法使用非常有用的dd命令:

Shell

1

dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 -w 0 | rev | cut -b 2- | rev

8. 你甚至可以生成一個只用左手便可以輸入的密碼:

Shell

1

</dev/urandom tr -dc '12345!@#$%' | head -c8; echo ""

9. 如果每次都使用上述某種方法,那更好的辦法是將它保存為函數。如果這樣做了,那麼在首次運行命令之後,你便可以在任何時間只使用randpw就可以生成隨機密碼。或許你可以把它保存到你的~/.bashrc文件裡面。

Shell

1

randpw(){ < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-16};echo;}

10. 最後這種生成隨機密碼的方法是最簡單的。它同樣也可以在安裝了Cygwin的Windows下面運行。在Mac OS X下或許也可以運行。我敢肯定會有人抱怨這種方法生成的密碼沒有其它方法來的隨機。但實際上如果你使用它生成的全部字元串作為密碼,那這個密碼就足夠隨機了。

Shell

1

date | md5sum

是的,這種方法也極其好記。

閱讀全文

與linuxrand相關的資料

熱點內容
電腦沒聯網怎麼拷貝文件 瀏覽:224
wps工具欄怎麼換成中文 瀏覽:338
win7和xp共享文件 瀏覽:883
蘋果4代音量鍵沒反應 瀏覽:827
怎樣打開tif文件 瀏覽:153
java下載文件zip 瀏覽:440
qq瀏覽器壓縮文件怎麼設密碼 瀏覽:526
黃埔數控編程哪裡好 瀏覽:406
mac109升級1010 瀏覽:691
在java的菜單如何導入文件 瀏覽:982
現在什麼網站銷量最高 瀏覽:760
angularjsclass定義 瀏覽:157
ug數控編程怎麼導出程序 瀏覽:466
cmdb文件 瀏覽:710
鵯文件夾 瀏覽:763
網路輿情應對的基本理念是什麼 瀏覽:433
word2007層次結構 瀏覽:456
去掉文件名的數字 瀏覽:713
word公司 瀏覽:710
淘寶店數據包怎麼上傳 瀏覽:341

友情鏈接