首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    猜大小游戏的具体细节

    具体讲解一下time 和rand ,srand三个函数具体细节  因为要用到随机数  所以要用到rand  但是他种子是固定的 为1  而随机数是以种子为基础进行算法的  所以随机数序列是固定的  这是它是伪随机 所以我们就要用到srand去改变rand种子  而提供的种子就要是随机的才能使rand随机  这时我们就用到time函数  此时time函数的返回值是此时到1985的时间差(忘了哪个时间)以这个为种子 所以就很随机   但需要注意的是因为是以时间为单位   所以如果我们将srand放在循环中 如果srand运行间隔太短 就导致种子几乎没区别 从而以此为基础算出来的rand就相差不大 从而随机数就导致没有随机性 两者间随机数相差不大(而如果你硬要将其放在循环中多次执行并且还想解决该问题就需在玩完一次游戏后等待较长时间再次进行游戏   )所以由于放在循环中过于麻烦 且不随机  所以在猜大小游戏中srand不要放入循环中   而是将其放入循环外  执行一次就行  之后的数都是在其随机序列上依次执行 完全不一样的数  (不像其放在循环中,每次rand执行的都是随机序列的第一个数 ,而且时间太短的话每个种子相差不大导致其第一个数都相差不大 就游戏错误)所以srand应放在循环外    对于我来说猜大小游戏的具体细节就是这样  其他语句上的运用太过简单  ,小细节也不用讲(不太重要没必要叙述) 所以猜大小游戏细节就是这些   图片如下

    01

    rand()函数的用法[通俗易懂]

    C++中rand() 函数的用法 1、rand()不需要参数,它会返回一个从0到最大随机数的任意整数,最大随机数的大小通常是固定的一个大整数。 2、如果你要产生0~99这100个整数中的一个随机整数,可以表达为:int num = rand() % 100; 这样,num的值就是一个0~99中的一个随机数了。 3、如果要产生1~100,则是这样:int num = rand() % 100 + 1; 4、总结来说,可以表示为:int num = rand() % n +a; 其中的a是起始值,n-1+a是终止值,n是整数的范围。 5、一般性:rand() % (b-a+1)+ a ; 就表示 a~b 之间的一个随机整数。 由于随机数范围RAND_MAX(win下为32767)与编译器平台有关,如果我们需要更大范围的随机数,可以直接想乘等办法. (int)round(1.0rand()/RAND_MAX(b-a+1)+a)

    01
    领券