jjzjj

PHP 的 array_rand() 不是真正随机的?

我正在编写一些代码来随机化演示文稿列表。同一演示文稿无法连续播放。$d数组将是演示文稿ID的列表以及演示文稿应循环播放的次数。下面的代码工作正常,但结果并不是真正随机的。当我开始一遍又一遍地看到相同的模式时,我正在调试。看看这个输出:ighbajafpbailgjacbiaeldiqjaphafgdjcbapsaebjfdkcknijhbdgecaimabodalkfbgbhacbhnrjeofbdjbfhegmbpdkialmbocnliaebfaimcabchgoecbcdimgepnfjgfbfbohdahdkjgneaebhaighbajafpbailgjacbiaeldiqj

c++ - C++ 中的 rand() 是可预测的吗

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicate:What’stheRightWaytousetherand()FunctioninC++?当我运行下面的程序时,每次我总是得到相同的值。rand不是真正的随机函数吗?intmain(){while(1){getch();cout在每次运行中,我都会得到以下值。41184676334265001916915724……

c++ - 为什么 rand() 在此 for 循环中使用 srand(time(null)) 返回相同的值?

我有以下代码#include#include"time.h"usingnamespacestd;voidprintRandomNumber(){srand(time(NULL));cout输出是相同的数字重复六次,我希望它打印出混合数字。 最佳答案 因为您每次都使用相同的值播种-time只有秒级精度,而且我很确定您的计算机可以在一秒钟内处理这六个循环迭代。;-]种子一次,在程序的开头。 关于c++-为什么rand()在此for循环中使用srand(time(null))返回相同的值?,我

c++ - OpenSSl RAND_bytes 多久返回一次错误,因为缺乏不可预测性?

RAND_bytes的文档声称如果生成的随机字节是可预测的,该函数可能会返回错误。我的问题是此类错误有多频繁?可以在有限循环(比如5次尝试)中调用RAND_bytes然后抛出异常是解决此问题的合理方法,或多或少像这样:unsignedcharrandom_bytes[4];uint8_tattempts=0;while(RAND_bytes(random_bytes,sizeof(random_bytes))!=1&&++attempts!=5){}if(attempts==5){throwstd::runtime_error("randombytestoopredictableaft

c++ - Boost 无法打开文件, 'libboost_filesystem-vc100-mt-gd-1_47.lib'

我已经用谷歌搜索了几个小时的错误,但没有得到太多信息。我已将该项目链接到我的VisualStudios(2010年和2012年)项目中,因为这似乎已经解决了与此类似的其他所有人的问题。但是,我仍然无法从boost的网站上获取我的示例代码并继续出现该错误。文件libboost_filesystem-vc100-mt-gd-1_47.lib在我的C:\ProgramFiles(x86)\boost\boost_1_47\lib路径中。这是我正在尝试测试并启动和运行的代码。#include#includeusingnamespaceboost::filesystem;intmain(inta

c++ - eclipse Debug模式下的 GDB 找不到 stdlib/rand.c

我正在尝试让gdb在ubuntu上与eclipsecdt一起运行,以开始调试一些简单的程序。因此,我执行了我认为必要的步骤以使其运行:1.创建可执行项目2.编译3.运行4.创建文件.gdbinit并将其放在主项目文件夹中5.设置一些调试器configuration:5.我也试着找到一个.gdbinit看起来像这样的文件:setschedule-multipledir~/gcc_build/4.7.2/build/gccdir~/gcc_build/4.7.2/gccdir~/gcc_build/4.7.2/gcc/cpdir~/gcc_build/4.7.2/gcc/ltosource

c++ - 如何在 for 循环中使用 random_engine 和 mt19937

我正在创建一个简单的ASCII游戏,应该在屏幕上放置3条蛇。我尝试使用for循环打印所有3条蛇:#include#include#include#include#include#includeusingnamespacestd;intmain(){char_levelTwo[20][20];intminSizeRand=1;intmaxSizeRand=19;//RandomEnemie1PlacementEnginestaticrandom_devicexSeed;staticmt19937randGen(xSeed());uniform_int_distributionenemie

c++ - 如何直接获取 rand() 序列中的第 n 个数字而不必调用 rand() n 次?

根据我的理解,使用特定种子设置srand会导致对rand()的调用序列每次为该特定种子生成相同的数字系列:例如:srand(seed1);rand()//firstnumber(e.g.:42)rand()//secondnumber(e.g:17)srand(seed1)rand()//firstnumber(sameasabove(42))rand()//secondnumber(sameasabove(17))有没有办法直接获取序列中的第n个数字,而不必调用rand()n次?例如,如果我想要系列中的第17个随机数,我想在一次调用中获得该数字,而不是调用rand()17次。我无法预

c++ - 使用 std::random_device 和 pRNG 有什么区别,例如std::mt19937 和没有?

在C++11中,可以使用std::random_device生成数字,有或没有像mt19937这样的伪随机数生成器。在此示例代码中使用它会有什么不同:#include#includeintmain(){std::random_devicerd;std::mt19937mt(rd());std::uniform_real_distributiondist(1,10);for(inti=0;i 最佳答案 std::random_device应该为您提供mt19937等引擎的种子。所产生的连续数字的质量是完全不确定的,并且可能很容易不足以

c++ - 为什么 rand() 在以 1 和 UINT_MAX 为种子时产生相同的值?

这是一些代码:#includeintmain(){srand(1);std::cout这会产生以下输出:1680716807为什么这两个种子会产生相同的结果?它们在连续的rand()调用中产生的整个值序列也是相同的。可能值的范围太大,这不可能是纯巧合。是吗:rand()的执行意外(如果是这样,我很好奇那可能是什么)通过设计(如果是,为什么?)(可能相关:种子10、100、1000、10000和100000分别产生168070、1680700、16807000、168070000和1680700000。) 最佳答案 一个非常简单可用的