[C++基础]随机数,随机种子数

#include <stdlib.h>
#include <iostream>
#include <ctime>
using namespace std;
void Test()
{
    int ran_num = 0;
    cout<<"不指定seed,   ";
    for(int i=0; i<10;i++)
    {
        ran_num = rand()%6;
        cout<<ran_num<<" ";
    }//每次运行都将输出:5,5,4,4,5,4,0,0,4,2

    srand(1);
    cout<<"\n指定seed为1,  ";
    for(int i=0; i<10;i++)
    {
        ran_num = rand()%6;
        cout<<ran_num<<" ";
    }//每次运行都将输出:5,5,4,4,5,4,0,0,4,2

    srand(6);
    cout<<"\n指定seed为6,  ";
    for(int i=0; i<10;i++)
    {
        ran_num = rand()%6;
        cout<<ran_num<<" ";
    }//每次运行都将输出:5,5,4,4,5,4,0,0,4,2
    srand((unsigned)time(NULL));
    cout<<"\n指定seed当前系统时间, ";
    for(int i=0; i<10;i++)
    {
        ran_num = rand()%6;
        cout<<ran_num<<" ";
    }//每次运行结果都不一样
}
/*
1.随机数也随机种子数之间的关系:随机种子是用来打乱随机数的,没有它,你的随机数并不是真正随机
2.种子与结果的关系是:对于不同的种子,有不同的随机数数列;对于相同的种子,具有相同的随机数数列
3.一个项目中(可执行文件),就需要设置一次随机种子
*/
int main()
{
    Test();
	return 0;
}

[C++基础]随机数,随机种子数

时间: 2024-08-02 18:56:39

[C++基础]随机数,随机种子数的相关文章

Unity基础 随机数的使用

脚本语言:C# 一个比较常用的例子是游戏中的主角碰到场景中的NPC时,NPC会随机做出反应,例如有50%几率来友好的致敬,25%几率走开,20%几率反身攻击和%%的几率赠送礼物. 创建一个NPCTest脚本,用于模拟NPC动作: using UnityEngine; using System.Collections; public class NPCTest : MonoBehaviour { //NPC动作几率 float[] probArray = {0.5f , 0.25f , 0.2f

随机数+随机字符串

随机数 随机取0-100 arc4random() % 101 随机取80+(0至20) (arc4random() % 21) +80:   随机字符串 -(NSString *)ret32bitString { //随机生成n位字母 int n=4; char data[n]; for (int x=0;x<n;data[x++] = (char)('A' + (arc4random_uniform(26)))); return [[NSString alloc] initWithBytes

随机函数Math.random()_随机数,随机排序

Math.random() 返回0到1之间的随机数(小数) 如:0.6417997585228452 通过Math.random()和sort函数可实现数组的随机排序,代码如下: 1 arr.sort(function( a, b ){ 2 return Math.random() - 0.5; 3 }); 4 5 alert( arr ); //8,7,4,3,2,1,5,6 总结产生随机数的公式: x ~ y 产生x到y之间的随机整数Math.round( Math.random()*(y-

shell实例浅谈之三产生随机数七种方法

一.问题 Shell下有时需要使用随机数,在此总结产生随机数的方法.计算机产生的的只是"伪随机数",不会产生绝对的随机数(是一种理想随机数).伪随机数在大量重现时也并不一定保持唯一,但一个好的伪随机产生算法将可以产生一个非常长的不重复的序列. 二.随机数 1.生成随机数的七种方法 (1)通过内部系统变量($RANDOM) echo $RANDOM 生成0-32767之间的整数随机数,若超过5位可以加个固定10位整数,然后进行求余. 生成400000~500000的随机数: #!/bin

[Python]基于权重的随机数2种实现方式

问题: 例如我们要选从不同省份选取一个号码,每个省份的权重不一样,直接选随机数肯定是不行的了,就需要一个模型来解决这个问题. 简化成下面的问题: 字典的key代表是省份,value代表的是权重,我们现在需要一个函数,每次基于权重选择一个省份出来 {"A":2, "B":2, "C":4, "D":10, "E": 20} 解决: 这是能想到和能看到的最多的版本,不知道还没有更高效好用的算法. #!/usr/

SQL Server 随机数,随机区间,随机抽取数据rand(),floor(),ceiling(),round(),newid()函数等

在查询分析器中执行:select rand(),可以看到结果会是类似于这样的随机小数:0.36361513486289558,像这样的小数在实际应用中用得不多,一般要取随机数都会取随机整数.那就看下面的两种随机取整数的方法:1.A:select floor(rand()*N) ---生成的数是这样的:12.0 B:select cast( floor(rand()*N) as int) ---生成的数是这样的:12 2.A:select ceiling(rand() * N) ---生成的数是这

JavaScript 产生不重复的随机数三种实现思路

在 JavaScript 中,一般产生的随机数会重复,但是有时我们需要不重复的随机数,如何实现?本文给于解决方法,需要的朋友可以参考下 在 JavaScript 中,一般产生的随机数会重复,但是有时我们需要不重复的随机数,如何实现?下面就来讲解三种方法产生不重复的随机数,并进行比较,看那种方法效率高. 方法一 思路:首先创建一个1到3000的数组,每次取一个数,然后去除数组中取出的这个数, 这样就可以实现永不重复. 复制代码代码如下: <script type="text/javascri

多线程基础:两种常见的创建线程的方式

一 通过继承Thread 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 package thread; public class ThreadDemo1 {     public static void main(String[] args) {         Demo1 demo1 = new Demo1("zifangsky");         Demo1 demo2 = new Demo1(

【机器学习基础】随机森林算法

引入 我们回顾一下之前学习的两个算法,Bagging算法中,通过bootstrapping得到不一样的数据,通过这些数据送到一个基本算法之后,得到不同的g,最后对这些g取平均得到G:决策树算法中,通过递归方式建立子树,最终得到一棵完整的树. 这两种算法都有其鲜明的特点,决策树对于不同的数据相对会敏感一些,即其算法的variance很大,而Bagging的特点是通过投票和平均的方式来降低variance的效果.如果将这两种方法结合起来,就是该文要介绍的随机森林,random forest. 1.