• C++产生随机数


    说明

    //在这里srand的作用非常重要,srand()的作用是初始化随机数种子,种子的伪随机数计算的根据,
    //种子同样,计算得到的随机数也是同样的,通常函数没实用到srand()而是用rand(),则是相当于调用了srand(1),
    //这也攻克了我上学期做最后那个记忆游戏时。每次又一次执行程序时,产生的随机数都是同样的问题
    //time(NULL)返回的值是自1970.1.1零点以来经过的秒数,所以每时每刻都是不同的

    代码

    #include<stdio.h>
    #include<time.h>    //time()
    #include<stdlib.h>  //srand()+rand()
    int main()
    {
        srand(time(NULL));
        //产生[a,b]
        int m = rand() % a + b;
        printf("%d
    ", m);
    }
    
    //主要是生成随机数。可是rand()函数生成随机数区间为[0,RAND_MAX]
    
    //RAND_MAX至少为32767(2e15-1),而且在不同条件下数值可能不同
    
    //这里作者用了放大的方式将区间放大(代码来自刘汝佳)
    
    #include<stdio.h>
    #include<time.h>    //time()
    #include<stdlib.h>  //srand()+rand()
    int n = 100, m = 100000;
    
    //这个函数是取得[0,1]区间内的实数,之后在下一个函数中扩大(n-1)倍在取整
    
    double random()
    {
        return (double)rand() / RAND_MAX;
    }
    int random(int m)
    {
        return (int)(random()*(m - 1) + 0.5);
    }
    int main()
    {
        srand(time(NULL));
        printf("%d %d
    ", n, m);
        for (int i = 0; i < m; i++)
        {
            if (rand() % 2 == 0)
            {
                printf("A");
            }
            else
            {
                printf("B");
            }
            int X, Y;
            for (;;)
            {
                X = random(n) + 1;
                Y = random(n) + 1;
                if (X != Y)
                {
                    break;
                }
            }
            printf("%d %d
    ", X, Y);
        }
        return 0;
    }
  • 相关阅读:
    C# Enum设计和使用的相关技巧
    Bat文件编写
    js cookie操作
    Android use custom html tag in TextView
    Charset , Encoding
    Android View (transship)
    Android About ContentProvider
    android,create text file in sdcard
    Eclipse Shortcuts
    Common Terminology
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5224628.html
Copyright © 2020-2023  润新知