在学习 <random> 库的时候, 唯独 seed_seq 看的不是很明白
尽管去 MSDN 看了, 还有 cppreference, 但是都还不是非常明
Google 上对于 seed_seq 的资料太少了
我的理解是 : 当给定的种子不是太好或者一个线性列表内的种子分布不好的时候, 但又需要大量的随机引擎或者大量熵的生成器的时候, 可以使用 seed_seq
根据 cppreference 的英文介绍, 大概就是这么理解的
一个好像看懂又觉得不懂的例子 :
#include <iostream>
#include <random>
using namespace std;
int main(int argc, char *argv[]) {
seed_seq seq {1, 2, 3, 4, 5};
vector<int> vec(10);
seq.generate(vec.begin(), vec.end());
for(const auto &c : vec) {
cout << c << endl;
}
}
不知道我的理解是否正确, 或者各位能否给出一些更详细的解释以及例子呢?
或许该看些密码学的书? 窝这学期刚开学时兴致冲冲的拿着一本密码学原版(从大数讲起的, 有很多c实现, 不过后来因为
太忙太懒了, 没有看下去(惭愧不已). 里面第十二章就是讲随机数的, 虽然窝还没有看到, 但是窝觉得这本书非常不错, 非常偏向实战, 理论也讲的很不错. 就是国内没什么知名度. 所以在这里想你推荐下, 你学random库肯定发现需要很多数论的知识吧.https://www.amazon.com/Crypto...
国内有引进的原版, 你可以自己搜下.