草庐IT

mt_srand

全部标签

php - 种子范围内的随机数

我一直在努力解决这个问题,但似乎找不到简单的解决方案。我有一个动态网格布局,文章放置在网格上但宽度和高度不同。这些不同文章的宽度和高度可以在访问网站时发生变化,但只有在添加新文章时才会发生变化。问题是我有逻辑使用mt_rand生成一个范围内的随机数(以适应布局网格),有没有一种方法可以传递种子(计划使用最新文章id)以便随机数在引入新文章之前保持一致?我想使用mt_srand但似乎没有一种简单的方法可以将随机数限制在一个范围内。谢谢。 最佳答案 mt_srand()用于设置种子,如果您想设置范围,mt_rand()会接受最小值和最大

c++ - srand(time(NULL)) 产生相似的结果

这个问题在这里已经有了答案:rand()functioninCisnotrandomevenwhenseeded(2个答案)关闭5年前。我不明白为什么srand()在运行之间生成如此相似的随机数!我正在尝试运行以下代码srand(time(NULL));intx=rand();cout然而,我得到的不是一个合适的随机数,而是几乎相同的数字,它随着时间的推移增长缓慢。所以我得到如下数字:11669、11685、11701、11714、11731。我做错了什么?我使用的是VisualStudio2010SP1。好的,srand()真的有那么简单吗?我的意思是怎么会有人称它为随机函数?sra

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

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

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++ - 如何在 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++ - 使用 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 和 srand 在不同的机器上得到不同的输出

我想生成一个随机整数,所以我使用了C++rand(void)和srand(int)函数:intmain(){srand(1);cout好的,它符合我的需要。每次我执行它都会得到相同的结果,我喜欢它!但有一个问题。当我在我的计算机上执行它时,我得到16807作为输出。但是当我在另一台机器上执行时,我得到了1804289383。我知道rand()和srand(int)有一个与此类似的简单实现:staticunsignedlongintnext=1;intrand(void)//RAND_MAXassumedtobe32767{next=next*1103515245+12345;retur

c++ - std::mt19937 和 std::uniform_real_distribution 每次都返回边界值

好的,所以我有一些RNG代码(当一切都说完了)归结为:#include#include#include#includedoublerandomValue(){//SeedaMersenneTwister(goodRNG)withthecurrentsystemtimestd::mt19937generator(std::chrono::system_clock::now().time_since_epoch().count());std::uniform_real_distributiondist(std::numeric_limits::lowest(),std::numeric_l

c++ - 是否将 std::time 与 std::srand 有效代码一起使用?

在C++中这样写是合法的:std::srand(std::time(nullptr));或者这会产生未定义的行为吗?std::time返回std::time_t这是一种算术类型,但除此之外未指定。据我理解,算术类型是float、整数和字符类型中的任何一种。std::srand将unsignedint作为种子值。因此,我认为您不能严格执行此转换。我读到在符合POSIX的系统上,std::time_t是整数,是自00:00,1970年1月1日UTC以来的秒数。在这种情况下,转换可能需要从有符号转换为无符号,这是实现定义的转换,但应该没问题,并且从较大的整数类型转换为较小的整数类型,这对种子

Banana Pi BPI-R4开源路由器开发板快速上手用户手册,采用联发科MT7988芯片设计

介绍BananaPiBPI-R4路由器板采用MediaTekMT7988A(Filogic880)四核ARMCorex-A73设计,4GBDDR4RAM,8GBeMMC,板载128MBSPI-NAND闪存,还有2x10GbeSFP、4xGbe网络端口,带USB3.2端口,M.2支持4G/5G/NVMESSD。2xminiPCIe插槽,带PCIe3.02lane接口,用于Wi-Fi7NIC(网络接口卡)。它是一款非常高性能的开源路由器开发板。更多信息:香蕉派BPI-R4准备准备8G以上TF卡、USB转串口线、Ubuntu系统12V/2A电源适配器(不带任何外设时,BPI-R4主板在最极端的情况下