导航:首页 > 编程系统 > 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相关的资料

热点内容
为什么要有多种编程语言 浏览:714
学编程哪个好用吗 浏览:396
电脑文件恢复得多少钱 浏览:178
数控g71编程p1q2什么意思 浏览:205
数据库的事务性能优化 浏览:920
软件和编程哪个容易学 浏览:744
怎么看wifi是什么网络 浏览:145
网站body怎么设置 浏览:209
玉石原石在哪个app可以卖 浏览:406
如何修改乐视账号密码忘了怎么办 浏览:83
w10分区工具 浏览:654
电脑里发现别人的文件夹还打不开 浏览:279
win7升级win10后蓝屏重启后黑屏了 浏览:760
文件名后缀改了没用 浏览:278
中国为什么人少编程的人多 浏览:4
苹果电脑桌面文件夹太多了怎么办 浏览:180
搜狐视频文件多大 浏览:816
qq文件存在手机哪里 浏览:675
电信网络上的微信号怎么查 浏览:490
涿州少儿编程哪里有 浏览:736

友情链接