相关疑难解决方法(0)

为什么在C++ 14中不推荐使用std :: shuffle方法?

根据std :: shufle上的cppreference.com参考站点,在c ++ 14中不推荐使用以下方法:

template< class RandomIt >
void random_shuffle( RandomIt first, RandomIt last );
Run Code Online (Sandbox Code Playgroud)

为什么我们不再能够在不传递第三个参数的情况下调用以下函数?

std::random_shuffle(v.begin(),v.end()); //no longer valid in c++14
Run Code Online (Sandbox Code Playgroud)

看起来好像不同的功能减速具有默认参数设置.这背后的原因是什么?是否添加了某种替代方案?

c++ deprecated stl-algorithm c++11 c++14

48
推荐指数
5
解决办法
8378
查看次数

C中的随机数发生器

我正在尝试生成0到59的随机数,并且对C中的rand()函数不满意.这是我正在玩的代码:

#include <stdlib.h>
#include <time.h>

main()
{

int num;
srand(time(NULL));
num = rand();
num = num % 59;
printf("%d\n", num);
}
Run Code Online (Sandbox Code Playgroud)

我已经重复了这段代码的运行,并注意到生成的随机数似乎并不是随机的.生成的数字肯定是遵循一种模式,因为每次运行程序时,数字会逐渐变大,直到它回绕到开头(即2,17,21,29,38,47,54,59,4, 11 ....等).

有没有一种方法可以为函数设定种子,这样每次重新运行函数时,我得到一个真正的随机数,生成的概率为1/60?或者是否有任何替代方法我可以自己实现而不是在C中使用rand()函数?

c random

2
推荐指数
1
解决办法
3万
查看次数

标签 统计

c ×1

c++ ×1

c++11 ×1

c++14 ×1

deprecated ×1

random ×1

stl-algorithm ×1