rand 订阅
rand,既表示美国兰德公司,同时也是C语言的一个函数名,或者是南非的货币名称,此外,在GSM通信中它也是一个随机数。美国兰德公司是美国最重要的以军事为主的综合性战略研究机构。 展开全文
rand,既表示美国兰德公司,同时也是C语言的一个函数名,或者是南非的货币名称,此外,在GSM通信中它也是一个随机数。美国兰德公司是美国最重要的以军事为主的综合性战略研究机构。
信息
货币名称
南非的货币名称
函数名
C语言的一个函数名
中文名
rand
公    司
美国兰德公司
rand货币名称
南非兰特Rand(兰特),符号:R,国际标志:ZAR,1 Rand (R) = 100 centsISO 在南非通用的货币是兰特(Rand),兰特的标记符号为R,100分为1兰特ZAR,南非货币兰特的国际化英文缩写。截止2010年12月14日,1 Rand 等于 0.9768人民币
收起全文
精华内容
下载资源
问答
  • rand
    2022-02-03 14:39:29

    题目:假如有了一个从自然数中随机取一个数的函数rand(0,7)——从0到7中随机取一个自然数出来,问如何用这个函数构造rand(0,10)——随机从0到10中取一个自然数出来。

    PS:该题目是在rand(10)没有现成函数的前提下实现的,必须通过rand(7)去构造

    (提示:需要注意函数的分布,可以用蒙特卡洛的方法进行验证)

    错误思路:

    设A为rand(0,7),B为rand(0,7),这两个都是从0到7中随机取得数,然后把取到的结果相加,如果结果大于10,就重新执行,否则就返回相加的结果。python实现代码如下:

    import random
    def rand_10():
        C = 11
        while C>10:
            A = random.randint(0,7)    
            B = random.randint(0,7)
            C = A+B
        return C

    python执行0次的获得的结果如下:

    这种解题思路获得的结果是0到10之间的自然数,但是结果却是不对的,先看正确的解题思路,再说明为什么这样取值不对。

    正确思路:

    设A为rand(0,7),B为rand(0,7),这两个都是从0到7中随机取得数。A作为高位(十位),B作为低位(个位),计算A*8+B的值,得到的是63以内的整数,得到的数据仍为均匀分布,然后我们把结果模11,得到0到10以内的自然数,但是63模11结果为8,那么0~8比9、10结果就会多一次,所以我们只取0~54的数,去模11,代码如下:

    def rand_10_2():
        rand_all = 55
        while rand_all >= 55:    #A*8+B最大取值为63,模11得8,0~8比9,10就会多一次,所以计算到54,每个数平均出现5次
            A = random.randint(0,7)   #8进制高位
            B = random.randint(0, 7)  #8进制低位
            rand_all = A*8+B
            C = rand_all%11    #0~10的自然数,包含0和10
        return C

    也执行20次 ,得到的数都是0到10之间的整数。

    , 验证结果:

    要验证两种结果哪种是对的,首先我们得明白,rand函数是从一组数中随机取一个数的函数,那么它要服从均匀分布,这样才能保证每个数取到的概率都一样。我们用蒙特卡洛方法进行验证,即模拟100000或更多次数,然后统计每个数出现的次数,看统计出的结果的直方图,从直方图就能看出是不是服从均匀分布。

    1、验证系统自带的函数服从的分布,代码如下:

    import random
    import numpy as np
    import matplotlib.pyplot as plt
    
    y = [0]*8      # 存放rand函数得到的值的个数
    for i in range(100000):   # 十万个数据中取值,进行验证
        num_1 = random.randint(0,7)
        for j in range(0,8):
            if j == num_1:
                y[j] +=1
    
    x = np.linspace(0, 7, num=8)
    plt.bar(x, y, align='center', alpha=0.7)
    plt.xlabel('num for rand')
    plt.ylabel('count for rand')
    plt.title('rand(7)')
    plt.show()             #用直方图显示得到的结果

    运行后得到的直方图如下:

    8个数得到的结果基本相等,说明python 系统自带的函数是服从均匀分布的。

     2、两个rand函数相加的方法得到rand(10)的方法,用该方法进行验证

    代码如下:

    import random
    import numpy as np
    import matplotlib.pyplot as plt
    
    def rand_10():
        C = 11
        while C>10:
            A = random.randint(0,7)
            B = random.randint(0,7)
            C = A+B
        return C
    
    y = [0]*11      # 存放rand函数得到的值的个数
    for i in range(150000):   # 十万个数据中取值,进行验证
        num_1 = rand_10()
        for j in range(0,11):
            if j == num_1:
                y[j] +=1
    
    x = np.linspace(0, 10, num=11)
    plt.bar(x, y, align='center', alpha=0.7)
    plt.xlabel('num for rand')
    plt.ylabel('count for rand')
    plt.title('rand(10)_add')
    plt.show()             #用直方图显示得到的结果

    运行后得到的直方图如下:

    从图中可以看出该分布不是均匀分布,而是服从泊松分布即正态分布的,至于为什么服从这种分布,后面有时间再讲解。

    3、高位*进制+低位的方法得到的结果进行验证

    
    def rand_10_2():
        rand_all = 55
        while rand_all >= 55:    #A*8+B最大取值为63,模11得8,0~8比9,10就会多一次,所以计算到54,每个数平均出现5次
            A = random.randint(0,7)   #8进制高位
            B = random.randint(0, 7)  #8进制低位
            rand_all = A*8+B
            C = rand_all%11    #0~10的自然数,包含0和10
        return C
    
    y = [0]*11      # 存放rand函数得到的值的个数
    for i in range(150000):   # 十万个数据中取值,进行验证
        num_1 = rand_10_2()
        for j in range(0,11):
            if j == num_1:
                y[j] +=1
    
    x = np.linspace(0, 10, num=11)
    plt.bar(x, y, align='center', alpha=0.7)
    plt.xlabel('num for rand')
    plt.ylabel('count for rand')
    plt.title('rand(10)_ocx')
    plt.show()             #用直方图显示得到的结果

     运行后得到结果如下:

    从直方图可以看到该结果服从均匀分布。

    更多相关内容
  • mt_rand() 则是用了 Mersenne Twister 中已知的特性作为随机数发生器,它产生随机数值的平均速度比 libc 提供的 rand() 快四倍。所以在PHP中mt_rand()函数是非正式用来替换rand()的。 语法: rand
  • 我们使用C语言的rand函数,生成的也是伪随机数。 c语言之rand函数的使用 1、写入头文件 #include <stdlib> #include <stdio> #include 2、变量的定义 void main( void ) { int i,k; 3、srand( (unsigned)time( ...
  • 函数rand()是真正的随机数生成器,而srand()会设置供rand()使用的随机数种子。如果你在第一次调用rand()之前没有调用srand(),那么系统会为你自动调用srand()。而使用同种子相同的数调用 srand()会导致相同的随机数...
  • rand() * (y-x) + x 咱们学php的都知道,随机函数rand或mt_rand,可以传入一个参数,产生0到参数之间的随机整数,也可以传入两个参数,产生这两个参数之间的随机整数。 而在mysql里,随机数函数rand不能传参,产生的...
  • PHP函数rand和mt_rand mt_rand() 比rand() 快四倍 很多老的 libc 的随机数发生器具有一些不确定和未知的特性而且很慢。PHP 的 rand() 函数默认使用 libc 随机数发生器。mt_rand() 函数是非正式用来替换它的。该函数...
  • 顺便给你找了点关于mysql rand函数的实例,如下:那就在insert 命令中,value()里面用rand(),注意字段宽度是否够一直以为mysql随机查询几条数据,就用SELECT * FROM `table` ORDER BY RAND() LIMIT 5 就可以了。
  • rand-terrorism-dataset.txt

    2020-06-01 20:00:43
    nlp常用工具包实战(4)spacy工具包,第五点,即第二个案例分析所用资源 111111111 vhbjnkl,/,nbvcx
  • 聚类算法评价指标:RandIndex,matlab代码
  • 470. 用 Rand7() 实现 Rand10() 已有方法 rand7 可生成 1 到 7 范围内的均匀随机整数,试写一个方法 rand10 生成 1 到 10 范围内的均匀随机整数。 不要使用系统的 Math.random() 方法。 示例 1: 输入: 1 输出: [7] ...
  • 下面小编就为大家带来一篇有关C++中随机函数rand() 和srand() 的用法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  •  函数一:int rand(void);  从srand (seed)中指定的seed开始,返回一个[seed, RAND_MAX(0x7fff))间的随机整数。  函数二:void srand(unsigned seed);  参数seed是rand()的种子,用来初始化rand()的...
  • 随机数生成rand.cpp

    2021-04-19 11:40:20
    随机数生成rand.cpp
  • 说明:如果没有提供可选参数 min 和 max,mt_rand() 返回 0 到 rand_max 之间的伪随机数,例如想要 5 到 15(包括 5 和 15)之间的随机数,用 mt_rand(5,15). 在 3.0.7 之前的版本中,max 的含义是 range,要在这些版本中...
  • 主要介绍了php中随机函数mt_rand()与rand()性能对比分析,较为详细的分析了两个函数的具体用法,并以实例形式分析了在不同平台下的运行效率问题,需要的朋友可以参考下
  • c代码-rand那个

    2021-07-14 20:32:05
    c代码-rand那个
  • ingersoll rand ics-connect 软件拧紧枪说明书(中文版)
  • 主要介绍了MySQL优化之对RAND()的优化方法,本文详细分析了Mysql中对RAND()的几种优化方法,并最终得出一个结论,需要的朋友可以参考下
  • 本文详细解说了MySQL Order By Rand()效率优化的方案,并给出了优化的思路过程,是篇不可多得的MySQL Order By Rand()效率美
  • 产生随机数的rand()函数的使用方法.产生随机数的rand()函数的使用方法.
  • 兰德范围 获取给定范围内的随机数(整数或浮点数)。 安装 $ npm install rand-range
  • 本文主要对C语言中srand和rand的用法进行详解。
  • shuffle与array_rand定义和用法,需要的朋友可以参考下。
  • 详细介绍了matlab中使用rand函数产生随机数的方法
  • matlab-rand()函数五种用法.docx
  • Rand函数详细讲解

    2013-12-29 20:42:45
    Rand函数的详细讲解,Rand函数在软件开发中有着广泛的使用

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 444,864
精华内容 177,945
关键字:

rand