在現實計算機上無法產生真正的隨機數,因此在隨機化演算法中使用的隨機數都是一定程度上隨機的,即偽隨機數。線性同餘法是產生偽隨機數最常用的方法(這裡不介紹)。
下面用計算機產生大的偽隨機數來模擬拋硬幣試驗。假設拋10次硬幣,每次拋硬幣得到正面和反面是隨機的。拋10次硬幣構成乙個事件。呼叫random(2)返回乙個二值結果。返回0表示拋硬幣得到反面,返回1表示得到正面。下面的演算法tosscoins模擬拋10次硬幣這一事件。在主程式中反覆用函式tosscoins模擬拋10次硬幣這一事件50000次。用head[i](0<=i<=10)記錄這50000次模擬恰好得到i次正面的次數。最終輸出模擬拋硬幣時間得到正面事件的頻率圖。
#include#include#include using namespace std;
//隨機數類
const unsigned long maxshort=65536l;
const unsigned long multiplier=1194211693l;
const unsigned long adder=12345l;
class randomnumber
;randomnumber::randomnumber(unsigned long s) //產生種子
unsigned short randomnumber::random(unsigned long n) //產生0到n-1之間的隨機整數
double randomnumber::frandom(void) //產生[0,1)之間的隨機數
int tosscoins(int numbercoins)
{ //隨機拋硬幣
static randomnumber cointoss;
int i,tosses=0;
for(i=0;i
概率演算法 偽隨機數生成 拋硬幣實驗
概率演算法 偽隨機數生成 拋硬幣實驗 實驗平台 vc net 2003 建乙個 win32控制台程式 偽隨機數生成的原理 隨機數在概率演算法中扮演著十分重要的角色。在現實計算機上無法產生真正的隨機數,因此在概率演算法中使用的隨機數都是一定程度上隨機的,即偽隨機數。產生偽隨機數最常用的方法是線性同餘法...
python numpy 隨機拋硬幣
使用二項分布進行計算.同時拋棄 5枚硬幣,如果正面朝上少於 3枚,則輸掉 8元,否則就贏 8元。如果手中有 1000 元作為賭資,請問賭博 10000 次後可能會是什麼情況呢?實現 import numpy as np 匯入畫圖模組 from matplotlib.pyplot import plo...
模擬 明明的隨機數
明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了n個1到1000之間的隨機整數 n 100 對於其中重複的數字,只保留乙個,把其餘相同的數去掉,不同的數對應著不同的學生的學號。然後再把這些數從小到大排序,按照排好的順序去找同學做調查。請你協助明明完成 去重 與 排序 ...