用随机投点法计算pi值matlab,(原创精品)用随机投点法计算π值【Compute π with dartpoint randomly】.doc...
(原創(chuàng)精品)用隨機(jī)投點(diǎn)法計(jì)算π值【Compute π with dartpoint randomly】
題目:Compute π with dartpoint randomly 用隨機(jī)投點(diǎn)法計(jì)算π值
程序步驟:
①創(chuàng)建頭文件 randomnumber.h
#ifndef RANDOMNUMBER_H
#define RANDOMNUMBER_H
#if _MSC_VER 1000
#pragma once
#endif
#include
//隨機(jī)數(shù)類
const unsigned long maxshort 65536L;
const unsigned long multiplier 11座機(jī)電話號(hào)碼L;
const unsigned long adder 12345L;
class RandomNumber private:
//當(dāng)前種子
unsigned long randSeed;
public:
//構(gòu)造函數(shù),默認(rèn)值0表示由系統(tǒng)自動(dòng)產(chǎn)生種子
RandomNumber unsigned long s 0 ;
//產(chǎn)生0:n-1之間的隨機(jī)整數(shù)
unsigned short Random unsigned long n ;
//產(chǎn)生[0,1 之間的隨機(jī)實(shí)數(shù)
double fRandom void ;
;
//產(chǎn)生種子
RandomNumber::RandomNumber unsigned long s if s 0 randSeed time 0 ; //用系統(tǒng)時(shí)間產(chǎn)生種子
else randSeed s; //由用戶提供種子 //產(chǎn)生0:n-1之間的隨機(jī)整數(shù)
unsigned short RandomNumber::Random unsigned long n randSeed multiplier * randSeed + adder;
return unsigned short randSeed 16 % n ; //產(chǎn)生[0,1 之間的隨機(jī)實(shí)數(shù)
double RandomNumber::fRandom void return Random maxshort / double maxshort ; #endif
②編寫源程序 random.cpp
// random.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "randomnumber.h"
#include
using namespace std;
// Compute π with dartpoint randomly
int main int argc, char* argv[] RandomNumber dart;
int i 0,k 0; //落入圓內(nèi)的點(diǎn)數(shù)為k
int n 10000; //向正方形隨機(jī)地投擲10000個(gè)點(diǎn)
double x,y;
for i 1;i n;i++ x dart.fRandom ; y dart.fRandom ;
if x*x+y*y 1 k++; cout 4*k/double n ;
cin i; //防止exe一閃而過
return 0; 結(jié)果顯示:
總結(jié)
以上是生活随笔為你收集整理的用随机投点法计算pi值matlab,(原创精品)用随机投点法计算π值【Compute π with dartpoint randomly】.doc...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        