草庐IT

rand_col

全部标签

c++ - C++ 中的 rand() 和 srand()

C++产生随机数的依据是什么?Istheresomelogicorprinciplebehindthat?Arethenumbersgeneratedcompletelyrandom?假设我正在运行这个程序:#include#include#includeintmain(){/*Declarevariabletoholdsecondsonclock.*/time_tseconds;/*Getvaluefromsystemclockandplaceinsecondsvariable.*/time(&seconds);/*Convertsecondstoaunsignedinteger.*

c++ - int ** 与 int [ROWS][COLS]

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicate:castingchar[][]tochar**causessegfault?我有一个这样声明的二维数组:intarr[2][2]={{1,2},{3,4}};现在如果我这样做:int**ptr=(int**)arr;和:cout我遇到了段错误(使用g++-4.0)。为什么会这样?它不应该打印值1(等于arr[0][0])吗?

c++ - RAND_MAX 的值总是 (2^n)-1 吗?

我对C++很感兴趣,尽管我怀疑它只是导入了C标准定义。我相信标准所说的答案是否定的,但我对实际答案最感兴趣。如果RAND_MAX始终为(2^n)-1(其中n是某个自然数-实际上是随机数中随机二进制数字的数量),这会简化处理最近从MinGW移动代码时出现的问题GCC到LinuxGCC。RAND_MAX似乎更大(我没有检查,但可能等于INT_MAX或任何符号),所以一些旧的天真编写的RAND_MAX-isn't-big-enough-so-work-around-it代码适得其反。现在我需要决定我需要这个库的通用性,考虑到编写正确处理溢出可能性的代码的繁琐程度而不对例如。int的宽度。无论

c++ - 为什么 opencv 的 Mat::rows 和 Mat::cols 是有符号的而不是无符号的?

我正在用gcc的-Wall标志编译一个程序。我在某些时候对Mat::cols和Mat::rows进行了比较(使用无符号整数),并收到有关比较有符号和无符号整数的警告。虽然放弃它没什么大不了的,但我很好奇Mat具有负大小的基本原理是什么。从逻辑上讲,矩阵不能比空矩阵(0行0列)更空,那么具有-1行或-1列的矩阵意味着什么?Theredoesn'tseemtobemuchperformancedifferencebetweencomputationsonsignedandunsignedintseither. 最佳答案 我想是因为int

c++ - 为什么 rand() 在不包含 cstdlib 或不使用命名空间 std 的情况下进行编译?

根据我正在阅读的书,rand()需要#include在C++中但是,我能够编译以下使用rand()的代码没有#include也不usingnamespacestd;在VisualStudio2015中。为什么这两个不需要编译?我应该包括cstdlib吗?C++代码:#includeintmain(){std::cout 最佳答案 有两个问题在起作用:标准库头文件可能包含其他标准库头文件。所以iostream可能直接或间接包含cstdlib。允许具有C标准库等效项(例如cstdlib)的头文件将C标准库名称带入全局命名空间,即std命

c++ - rand() 总是在应用程序重启时返回相同的序列

我有以下生成随机数的方法:intrandom_number()//Randomnumbergenerator{intx=rand()%1000000+1;//Generateanintegerbetween1and1000000returnx;}对这个方法的调用是在一个迭代五次的循环中使用的。这种方法的问题在于,多次运行程序时,它似乎总是生成相同的数字。如何解决? 最佳答案 您需要seed随机数生成器,例如:srand(time(NULL));intx=rand()%1000000+1;为伪随机数生成器播种基本上决定了它将遍历的随机

c++ - c++ 中的 rand() 函数生成周期为 3276800 的偶数和奇数,谁知道为什么?

for(intj=0;j第一个3276800和第二个3276800是一样的。rand()的个数不一样,但是odevity是一样的;为什么? 最佳答案 rand的大多数实现使用的RNG是linearcongruentialgenerator.这些往往在低位中有非常差的周期;非常幼稚的实现可能在低阶位中只有2个周期(即交替的0和1)。更好的实现只返回随机值的高16位,丢弃质量差的低位。在这样的实现中,低位的周期最多为2^16=65536。由于65536平均除以3276800,您将看到一个周期性模式。

c++ - rand() 在编译时生成相同的数字

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:What'stheRightWaytousetherand()FunctioninC++?我一直在学习如何使用rand()函数,并且我用C++编写了一个小型猜谜游戏,如下所示,但问题是,无论我编译程序多少次,生成的数字都是相同的->41#include#include#includeusingnamespacestd;intmain(){intx=rand()%100;inty=0;cout>y;while(y!=x){if(y>x){cout>y;}if(y>y;}if(y==x){cout我还尝试更改ra

c++ - Windows 和 Linux 上不同的 rand() 结果

我注意到,标准的rand()函数在Windows和Linux上给出了不同的结果。当然,我使用了相同的种子编号(1234)。以下是几个初步结果:中奖:4068213127618758林:4791424144655663399611261551057886067我的应用程序要求两个平台产生相同的输出。我有哪些选择?rand()有什么好的替代品可以满足我的要求吗?谢谢附言。我在Windows7上使用MSVC2008,在CentOS5.5上使用gcc4.1.2 最佳答案 Boost有一个widerangeofRNGs,大概具有跨平台的可重现

c - Windows 的 rand_s 线程安全吗?

如题。怀疑是,但我找不到任何明确说明的地方。对于此属性,我不想依赖推测。 最佳答案 如果您使用multithreadedCRT版本,所有函数都是线程安全的,因为任何线程特定的信息都存储在TLS中。.rand_s实际上首先不使用状态信息,因为它只是调用操作系统API,因此rand_s不会出现线程安全问题。rand(),但是取决于种子值来生成随机数。 关于c-Windows的rand_s线程安全吗?,我们在StackOverflow上找到一个类似的问题: http