产生不同的随机数

编程入门 行业动态 更新时间:2024-10-28 04:27:44
本文介绍了产生不同的随机数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我想生成不同的随机数.我使用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; }

更多推荐

产生不同的随机数

本文发布于:2023-10-28 23:03:18,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1538018.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:随机数

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!