隨機數模擬拋硬幣實驗

2021-08-03 17:49:26 字數 882 閱讀 4927

在現實計算機上無法產生真正的隨機數,因此在隨機化演算法中使用的隨機數都是一定程度上隨機的,即偽隨機數。線性同餘法是產生偽隨機數最常用的方法(這裡不介紹)。

下面用計算機產生大的偽隨機數來模擬拋硬幣試驗。假設拋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 對於其中重複的數字,只保留乙個,把其餘相同的數去掉,不同的數對應著不同的學生的學號。然後再把這些數從小到大排序,按照排好的順序去找同學做調查。請你協助明明完成 去重 與 排序 ...