关于C程序生成随机数遇到的问题

很久之前就遇到这个问题了,今天又踩坑...

如果想在C语言里面产生随机数,需要调用rand()

Description

    The C library function int rand(void) returns a pseudo-random number in the range of 0 to RAND_MAX. RAND_MAX is a constant whose default value may vary between implementations but it is granted to be at least 32767.
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int temp = 0;
    for(temp = 0;temp < 5;temp++)
    {
        printf("%d\t",rand());
    }
    printf("\n");
    return 0;
}

我靠( ‵o′)凸每次都一样的结果,你跟我说你是随机数?我×

这里需要初始化...最好是用当前时间做种子,然后"喂给"srand()函数初始化之后再做rand().每次调用程序的时候,因为时间不同了,种子不同了,随意总是可以得到不同的随机数.

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int temp = 0;
    srand(time(NULL));
    for(temp = 0;temp < 5;temp++)
    {
        printf("%d\t",rand());
    }
    printf("\n");
    return 0;
}

前段时间还看DSAA怎么去写一个rand(),又被无限期搁置了...

时间: 2024-08-09 02:03:27

关于C程序生成随机数遇到的问题的相关文章

微信小程序生成随机数

const charts = ['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'];const random = function generateMixed(n){ var res = ''; for(var i = 0; i <n; i++){ var id

微信小程序生成随机数 0或者1 js代码

Math.floor(Math.random() + 0.5) Math.random()的取值范围是: 0<=Math.random()<1  随机小数 Math.floor(X) =X的整数位例如Math.floor(6.999)  ===  6Math.floor(39.001)   ===  39Math.floor(8)   ===  8 原文地址:https://www.cnblogs.com/lsyy2017/p/11704769.html

Unity 可重复随机数

出处 https://blogs.unity3d.com/cn/2015/01/07/a-primer-on-repeatable-random-numbers/   (英文原版) http://www.manew.com/thread-37144-1-1.html 不管创建什么样的程序,几乎都离不开随机数.如果您想多次生成同样的结果,这就需要随机数是可重复的. 在本片文章中我们将介绍使用关卡或世界的生成作为示例,但其中的原理也适用于许多其它内容,例如程序纹理.模型.音乐等等.然而,这并不适用于

.Net Core使用分布式缓存Redis:Lua脚本

一.前言 运行环境window,redis版本3.2.1.此处暂不对Lua进行详细讲解,只从Redis的方面讲解. 二.Redis的Lua脚本 在Redis的2.6版本推出了脚本功能,允许开发者使用Lua语言编写脚本传到Redis中执行,在Lua脚本中也可以调用大部分的Redis命令.使用脚本有以下三个好处: (1) 减少网络开销:有些时候需要多次请求Redis获取处理数据,而使用脚本功能就可以只使用一次请求完成相同操作,减少了网络往返时延. (2) 原子操作:Redis会将整个脚本作为一个整体

密码学——随机数的生成

今天上课听老师讲了随机数,真随机数无法通过程序生成,一般代码中用到的随机数都是伪随机的.然后提到了通过π(圆周率)的小数位和拼接素数来产生随机数的方法,闲来无聊,故此来统计下这两种情况下各个数的概率.~~ (可能没有什么实际意义,就当写得玩玩.:>) π小数位的方法 以下是从网上摘取的π小数点后1000位的值: 1415926535 8979323846 2643383279 5028841971 69399375105820974944 5923078164 0628620899 862803

shell系列生成随机数的方法

一: RANDOM echo $RANDOM RANDOM的随机数是有范围的1--32767,一般用它是可以被破解的 1.2  生成八位数的随机密码: echo $(($RANDOM+11111111)) 二:MD5sum 随机加密方法 生成的密码较长 取9位数密码: echo $RADDOM |md5sum|cut -c 2-9 三:通过openssl产生随机数 [[email protected] tmp]# openssl rand -base64 8 hInfIvtfOSk= [[ema

javaScript随机数取值方法

Math.random()方法返回0到1之间的一个随机数,不包括0和1 如若想取的一个范围的随机数可套用下面的公式: 一.X+开始数-1=结束数 二.Math.floor(Math.random()*X+开始数) 注:Math.floor()向下舍入,去掉小数点后数 例: //若想取的5到10之间的数,套用公式:①X+开始数-1=结束数//可得出X为6//②Math.floor(Math.random()*X+开始数)//for(var i=0;i<10;i++){ document.write

重复10个1~60顺序且不重复的随机数

$flag = 1; for ($i = 0; $i < 10; $i++) {     $data['mobile'] = $evaluate_mobile;     //随机时间     $second = rand($flag, 6 * ($i + 1));//重复10个1~60顺序且不重复的随机数     $flag = $second + 1;//加1是未免与上一结果重复     $data['second'] = $second;     $result[] = $data; }

r语言之生成随机序列,随机数生成函数及用法

(1)生成正态分布随机数: rnorm(n,mean,sd)     其中,n表示生成的随机数个数,mean表示正态分布均值,sd表示正态分布标准差 > rnorm(5,0,2)[1] -5.31147765 0.09634197 0.35276104 -1.94548466 0.54533883 (2)生成均匀分布随机数: runif(n,min,max)     其中,n表示生成的随机数个数,min表示均匀分布最小值,max表示均匀分布最大值 > runif(5,0,10)[1] 9.74