在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/C++  網(wǎng)絡(luò)安全/ 是否可以這么理解 std::seed_seq?

是否可以這么理解 std::seed_seq?

在學(xué)習(xí) <random> 庫的時候, 唯獨 seed_seq 看的不是很明白
盡管去 MSDN 看了, 還有 cppreference, 但是都還不是非常明
Google 上對于 seed_seq 的資料太少了
我的理解是 : 當(dāng)給定的種子不是太好或者一個線性列表內(nèi)的種子分布不好的時候, 但又需要大量的隨機引擎或者大量熵的生成器的時候, 可以使用 seed_seq
根據(jù) 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;
    }
}

不知道我的理解是否正確, 或者各位能否給出一些更詳細的解釋以及例子呢?

回答
編輯回答
淚染裳
我的理解是 : 當(dāng)給定的種子不是太好或者一個線性列表內(nèi)的種子分布不好的時候, 但又需要大量的隨機引擎或者大量熵的生成器的時候, 可以使用 seed_seq.
std::seed_seq is generally intended to be used if you don't trust the default implementation to properly initialize the state of the engine you're using.1
能否給出一些更詳細的解釋以及例子呢?
https://stackoverflow.com/a/2...

或許該看些密碼學(xué)的書? 窩這學(xué)期剛開學(xué)時興致沖沖的拿著一本密碼學(xué)原版(從大數(shù)講起的, 有很多c實現(xiàn), 不過后來因為太忙太懶了, 沒有看下去(慚愧不已). 里面第十二章就是講隨機數(shù)的, 雖然窩還沒有看到, 但是窩覺得這本書非常不錯, 非常偏向?qū)崙?zhàn), 理論也講的很不錯. 就是國內(nèi)沒什么知名度. 所以在這里想你推薦下, 你學(xué)random庫肯定發(fā)現(xiàn)需要很多數(shù)論的知識吧.

https://www.amazon.com/Crypto...

國內(nèi)有引進的原版, 你可以自己搜下.


  1. https://stackoverflow.com/a/4... ?
2018年3月30日 09:51