我有两个变量R
和S
。我将它们定义为int R[1000]
和int S[100000]
。 R
会保留0
到999
的值。现在,我希望R
值均匀分布在S
(100000
值)中。 S
中的条目数应为100000
,但它们应均匀分布在0-999
范围内。
我该怎么做?
答案 0 :(得分:2)
您可以使用C ++ 11 STL快速填充R
和S
来编写以下内容:
#include <numeric>
#include <random>
int main() {
int R[1000], S[100000];
std::iota( std::begin( R ), std::end( R ), 0 );
std::mt19937 engine;
std::uniform_int_distribution<int> dist( 0, 999 );
std::generate( std::begin( S ), std::end( S ), []{ return dist( engine ); } );
}