最近看的問題都很簡單,所以寫的都是一些小細節,希望日後記住。
今天的主題:
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 ...