本文介绍了产生不同的随机数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想生成不同的随机数.我使用srand和rand,但是在输出中某些数字是相同的.
I want to generate different random numbers . I used srand and rand , but in my output some numbers are identical .
这是我的输出:
如何使用srand生成不同的数字?
How to do with srand to generate different numbers ?
#include<iostream> #include<time.h> #include <windows.h> int main(){ time_t t; std::vector<int> myVector; srand((unsigned)time(NULL)); for (int i = 0; i < 40; i++){ int b = rand() % 100; myVector.push_back(b); std::cout << myVector[i] << std::endl; } Sleep(50000); }推荐答案
一种简单的方法是将0-99之间的所有数字加到一个向量上并对其进行随机排序,这样您就可以获得多达(最多100个)非重复随机数您需要的数字.
One easy way is to add all numbers from 0-99 to a vector and shuffle it, then you can get as many (up to 100) non repeating random numbers as you require.
#include <algorithm> #include <chrono> #include <iostream> #include <random> #include <vector> int main(void) { std::vector<int> numbers; for(int i=0; i<100; i++) // add 0-99 to the vector numbers.push_back(i); unsigned seed = std::chrono::system_clock::now().time_since_epoch().count(); std::shuffle(numbers.begin(), numbers.end(), std::default_random_engine(seed)); for(int i=0; i<40; i++) // print the first 40 randomly sorted numbers std::cout << numbers[i] << std::endl; }更多推荐
产生不同的随机数
发布评论