C C 隨機數的一些簡單理解

2021-08-31 19:04:12 字數 1198 閱讀 8317

最近看的問題都很簡單,所以寫的都是一些小細節,希望日後記住。

今天的主題:

rand()

使用起來很簡單:

還是先記著,它來自於#include

cout<<

rand()

;

它產生乙個0到rand_max的隨機整數,不需要花裡胡哨的引數,直接用就行。

但是我們一般用不到這麼大的數,所以要學會控制範圍。

網上有很多各種公式啊啥的,我最討厭這些,死記下來,有用嗎?

理解很簡單,不需要看什rand()%***xx

cout<<

rand()

%10;

產生乙個0到9的數,很簡單,乙個隨機整數除以10,它的餘數必定在10以內,所以就得到0到9的隨機數。

這個例子改變了數的終點,改變起點更加簡單:

cout<<

rand()

%11+5

;

產生了5到10的整數,整數end.

小數呢?

除以乙個數不就行了(記得這就不是int了)

但是這些隨機數在你程式編譯一遍後重複執行,是一直不會變的,所以這就是它叫偽隨機數的原因。因此就有了srand()。

然後我們來說說srand()

srand()

srand()是用來初始化rand()種子的,它也是#include它們家的。

它是有引數的,它相當於乙個工具,你給它乙個種子,他幫你去辦事:就是去初始化rand()。

它的原型:

void

srand

(unsigned seed)

很明顯這個引數就是個種子。

一般來說我們在這使用的引數都是時間time,因為時間是不停的在動的。

ps:要用到的time是#include裡面的,它是從2023年0秒到現在的時間的秒數,很大很大。

#include

#include

#include

int num;

srand((

unsigned

)time

(null))

num =

rand()

%101+1

;cout<你會發現每次執行產生的數都是隨機的,這就是真正的隨機數了。

對C語言隨機數函式rand的一些理解

int rand void stdlib.h 返回 0,rand max 範圍的整數,ansi c只規定了函式rand的返回值型別 即int 和返回值上界 即rand max 也就是說,任何乙個具體的實現,只要rand max不超過其所在平台int的正向最大值都是允許的 不然返回值發生溢位 例如,在...

明明的隨機數 C C

題目描述 明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了n個1到1000之間的隨機整數 n 1000 對於其中重複的數字,只保留乙個,把其餘相同的數去掉,不同的數對應著不同的學生的學號。然後再把這些數從小到大排序,按照排好的順序去找同學做調查。請你協助明明完成 去重...

numpy中一些常用的隨機數生成

import numpy as np np.random.randint low,high,size 生成最小值為low,最大值為high,形狀為size的隨機整數 np.random.randn size 生成形狀為size的標準正態分佈隨機數組 np.random.normal loc 0.0 ...