1. 程式人生 > >rand()產生隨機數

rand()產生隨機數

 #include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main(void)
{
    int m, n;
    time_t t;
    srand((unsigned) time(&t));//srand函式是隨機數發生器的初始化函式,不用的話每次產生同樣的隨機數
    m = rand();//產生0-2^16的整數
    n = rand()%10;//產生0-10的隨機數
    printf("m = %d\nn = %d\n", m, n);
    return 0;
}
/*
函式名: time   標頭檔案:time.h   函式原型:time_t time(time_t * timer)  
 功能: 獲取當前的系統時間,返回的結果是一個time_t型別,其實就是一個大整數,
其值表示從CUT(Coordinated Universal Time)時間1970年1月1日00:00:00(稱為UNIX
系統的Epoch時間)到當前時刻的秒數。然後呼叫localtime將time_t所表示的CUT時間轉換
為本地時間(我們是+8區,比CUT多8個小時)並轉成struct tm型別,該型別的各資料成員
分別表示年月日時分秒。
*/
/*
srand函式是隨機數發生器的初始化函式。
   原型:void srand(unsigned seed);   
 用法:它需要提供一個種子,這個種子會對應一個隨機數,如果使用相同的種子後面的
 rand()函式會出現一樣的隨機數。如: srand(1); 直接使用1來初始化種子。不過為了
 防止隨機數每次重複常常使用系統時間來初始化,即使用 time函式來獲得系統時間,
 它的返回值為從 00:00:00 GMT, January 1, 1970 到現在所持續的秒數,然後
 將time_t型資料轉化為(unsigned)型再傳給srand函式,即: srand((unsigned) time(&t));
 還有一個經常用法,不需要定義time_t型t變數,即: srand((unsigned) time(NULL));
 直接傳入一個空指標,因為你的程式中往往並不需要經過引數獲得的t資料。
 srand((int)getpid()); 使用程式的ID(getpid())來作為初始化種子,在同一個程式中這
 個種子是固定的
*/

相關推薦

VS2010中srand和rand產生隨機數的用法

原文地址:https://blog.csdn.net/na_beginning/article/details/39932535 1.VC和VS2010中srand()和rand()函式的區別        在VC中rand(

關於c語言rand產生隨機數相同的問題(學習筆記)

函式rand是真正的隨機數生成器(可以產生從0到32767的隨機數),而srand會設定供rand使用的隨機數種子。呼叫rand()之前沒有呼叫srand(),系統就主動呼叫srand(),導致產生同樣的隨機數(隨機數種子相同)。/*常常使用:srand(time(NULL)

rand()產生隨機數

 #include <stdlib.h> #include <stdio.h> #include <time.h> int main(void) {     int m, n;     time_t t;     srand((unsig

openssl rand 產生隨機數

<openssl rand> <[email protected]> 介紹 openssl rand 用於產生指定長度個bytes的隨機字元。 語法 openssl rand[-out file] [-randfile(s)] [-bas

使用rand()產生服從高斯/正態分佈的隨機數

我們藉助於rand()去生成高斯/正態分佈。 當然,rand是偽隨機的問題在此先不考慮。 (1)用Box-Muller方法,隨機抽出兩個從均勻分佈的數字和。然後 那和都是正態分佈的。 證明可用極座標,請參考教科書中的Box-Muller方法。 C程式碼: #

linux c產生隨機數rand(),srand()

      在C語言中,rand()函式可以用來產生隨機數,但是這不是真真意義上的隨機數,是一個偽隨機數,是根據一個數,我們可以稱它為種子,為基準以某個遞推公式推算出來的一系數,當這系列數很大的時候,就符合正態公佈,從而相當於產生了隨機數,但這不是真正的隨機數,當計算機正

C語言rand()函式產生隨機數

#include <stdlib.h> #include <time.h> int main() { int i; srand((unsigned)time(NULL)); for (i=0;i<10;i++) pri

C++—rand和srand的用法(簡單易懂版)—產生隨機數

每天進步一點點,目標距離縮小點在C++中,可以使用rand()函式產生隨機數。(rand()函式的標頭檔案在<cstdlib>中)如果想產生在一定範圍內的數,可以用取餘的方法獲得。如想獲得0—100的數同樣的道理,如果想獲得100-200之間的數—————————

思考中rand()函式產生隨機數需不需要srand()的發現

“在程式中每次呼叫rand()產生的數字都相同”這是不對的!!要知道為什麼不對,還是先說明一下rand()函式吧,rand()函式是會用系統提供的種子(沒有用srand()提供時)或者srand()提供的種子計算出一組隨機數,嗯,是一組!而不是一個!!可以把這一組數看做是儲存

modelsim調用產生隨機數及創建虛擬類

iic blue 類型 div spa 窗口 查看 隨機數 lan 1、 Modelsim仿真產生隨機數 reg data; data = $random % a; //產生從-a+1 ~ a-1 的隨機數 data = {$random} % a; //產生從0

C++雜談三產生隨機數與time函數

.com jca nis quest pex bit pst cap die %5Bdjango%5D%E8%A1%A8%E6%A0%BC%E7%9A%84%E6%B7%BB%E5%8A%A0%E4%B8%8E%E5%88%A0%E9%99%A4%E5%AE%9E%E4%B

用c語言產生隨機數的方法

c語言產生隨機數 定義函數 rand 正態分布 time pri 行程 程序 現在 用c語言產生隨機數的方法 一、 //************************************ 偽隨機數 在C語言中,rand()函數可以用來產生隨機數,但是這不是真正意義上的

JavaSE8基礎 Random 使用給定的種子產生隨機數

alt light 產生 block src images dem util 手冊 os :windows7 x64 jdk:jdk-8u131-windows-x64 ide:Eclipse Oxygen Release (4.7.0) code:

Java產生隨機數

close pub 修改 n-1 div pen math ring 方法   對於這個問題,我只放上代碼就可以了,代碼中有註釋,相信聰明的你看得懂的!    import java.util.Random; //需要用到這個類包 /* * Java產生隨

JS產生隨機數的幾個用法!

func 四舍五入 script 整數 其中 n) 產生 var () <script> function GetRandomNum(Min,Max){ var Range = Max - Min; var Rand = Math.random();

C#產生隨機數

rabl ret div 成了 enume post name 發現 多重 /// <summary> /// 隨機數據 獲取 /// </summary> /// <param na

C/C++產生隨機數

我們 們的 pre 同余 結果 signed lin tween time 轉載自:http://blog.csdn.net/beyond0824/article/details/6009908 <一> C/C++怎樣產生隨機數:這裏要用到的是rand(

JavaScript 產生隨機數可定長度的幾種方法

post class gpo 長度 java var function int ava /** *size:可選擇長度 **/ function getRandown(size){ var chars = [‘0‘, ‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘

產生隨機數工具類

import ack long com string pre nbsp tex ati package com.qiyuan.util; import org.apache.commons.lang.RandomStringUtils; import org.apach

產生隨機數的三種方式

pan blog color gpo class src 9.png exti ron 1. java.util.Random   java.util.Random類提供了以下產生隨機數的方法:   (1) 通過Random() 構造方法實例化的對象產生隨機數