1. 程式人生 > >採用蒙特卡洛方法計算PI的值

採用蒙特卡洛方法計算PI的值

%%
clc;
clear;
close all;
%%
sample_size = 10.^(2:1:7);
my_pi = zeros(length(sample_size),1);
for i = 1:length(sample_size)
    N = sample_size(i);
    rng('shuffle');
    x = rand(N,1);
   rng('shuffle');
    y = rand(N,1);
    s = sum(x.^2+y.^2 <= 1);
    my_pi(i) = s/N*4;
end
%%
plot(abs(my_pi-pi),'g-s','LineWidth',1.5);
set(gca,'XScale','log');
xlabel('number of points');
ylabel('abs(my\_pi-pi)');
grid on;

相關推薦

採用蒙特卡洛方法計算PI

%% clc; clear; close all;%% sample_size = 10.^(2:1:7); my_pi = zeros(length(sample_size),1); for i = 1:length(sample_size)     N = sample_size(i);     rng(

【MPI高效能運算】蒙特卡洛方法計算pi

蒙特卡洛方法 就是通過概率模擬來近似計算。 其實演算法進度不是很高。 程式碼 在下面程式碼中的input檔案中的內容是 10000000 執行效果:下面用四個核來做計算 PS D:\C++\VS\repo\MPI-DEMO\Debug> mpiexec

用概率的方法計算Pi

精確計算Pi的值,從古至今都吸引了無數的數學家。迄今為止,科學家還沒有計算得出精確的Pi值,也沒有發現小數點後面的值有什麼規律。 現在,我們用一種比較簡單的概率的方式來近似計算Pi的值。 二話不說,直接上程式碼。 public class PiCacu

用隨機投擲飛鏢法計算Pi(Randomness Throwing dart Pi Python)

targe .html def 技術分享 公開課 9.png pan turn div 畫一個邊長為r的正方形和半徑為r的四分之一的圓(如下圖所示),向上面隨機投擲飛鏢,通過計算落在星星區域和整體區域的飛鏢比例,即可求出π值。 公式推導如下: 假設正方形的邊長r

蒙特卡洛方法計算圓周率

#蒙特卡洛方法計算圓周率 from random import random s=1000*1000#撒點的個數 hist=0.0#圓內的點的初值 for i in range(0,s+1): x=random() y=random() if

MPI計算pi

訪問本站觀看效果更佳 π的求解方式: //由高數裡的知識可知,根據上述公式可以求得pi/4。 #include<stdio.h> #include<mpi.h> int main(int argc,char *argv[]){ int my_rank,nu

蒙特卡洛方法計算小遊戲獲勝概率(Python實現)

遊戲描述: 有兩人X和Y,遊戲之前兩人分別擁有籌碼x個和y個,兩人開始進行每人獲勝概率都是50%的比拼,如果X贏了,並且之前x>=y,那麼遊戲結束,X獲勝;如果X贏了,但是之前x<y,則X的籌碼翻倍,變成2x,Y的籌碼變成y-x,遊戲繼續; 問:當x,y取不同值

java蒙特卡洛演算法求PI(視覺化)及三門問題

蒙特卡洛演算法求PI值 工具類 package com.egeo.jframetext; import java.awt.BasicStroke; import java.awt.Color; import java.awt.FontMetrics

用hadoop計算PI

一、計算PI值的方式與原理       百度一下,計算PI的方法還真不少。但在hadoop examples程式碼中的註釋寫的是:是採用 Quasi-Monte Carlo 演算法來估算PI的值。       維基百科中對Quasi-Monte Carlo的描述比較理

資料結構28——高精度計算PI

題目:輸入n,輸出PI精確到小數點後n位的PI值。#include<stdio.h> #include<stdlib.h> typedef struct node { int data; struct node*next; struct nod

tornadofx使用circle、AnimationTimer、timeline動畫演示蒙特卡洛演算法求PI

演示地址:https://www.bilibili.com/video/av59421525 import javafx.a

使用不同的方法計算TF-IDF

分類算法 不能 gis bsp gensim 裏的 lar 摘要 表示 摘要 這篇文章主要介紹了計算TF-IDF的不同方法實現,主要有三種方法: 用gensim庫來計算tfidf值 用sklearn庫來計算tfidf值 用python手動實現tfidf的計算 總結 之所

Codeforces Gym 101174 J Risky Lottery 計算方法 逼近求 dfs

ref rem sin else 情況下 fab cnblogs clu fine #include<stdio.h> #include <math.h> using namespace std; int fac[10],a[10]; #defi

大資料之Spark(四)--- Dependency依賴,啟動模式,shuffle,RDD持久化,變數傳遞,共享變數,分散式計算PI

一、Dependency:依賴:RDD分割槽之間的依存關係 --------------------------------------------------------- 1.NarrowDependency: 子RDD的每個分割槽依賴於父RDD的少量分割槽。 |

C語言——兩種方法計算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的

方法一:首先我們先觀察這個數學式子的規律,可以發現奇數項均為正數,偶數項均為負數。則我們可以利用條件語句if來判斷奇偶,最後分別對奇數項和偶數項求和。 原始碼: #include<stdio.h> #include<stdlib.h> int main() {

Hadoop執行MapReduce作業的過程-案例-計算pi

           在安裝好了Hadoop集群后,我們是不是馬上想去實踐一下,做個例子來測試它是否符合我們的要求呢。這樣,我們使用系統的例子來測試,也就最常見的求PI 的值。        

蒙特卡洛方法近似求解PI

本文為博主原創文章,轉載請註明出處。 public class T { // 迴圈次數 private static int LOOP = 100000; // 圓的半徑 private static double R = 0.5;

java中計算時間差方法(天數,小時數,分鐘數,秒數)

藉助joda-time來計算兩個日期的差值,包含天數,小時,分鐘,秒數: 1、joda-time-2.9.9.jar包下載地址: 2、程式碼例項: package org.joda.time.test; import java.text.ParseException;

計算PI(π)的幾種方法

計算π的方法 一、蒙特卡羅法 這種方法是一種利用計算機隨機數的功能基於“隨機數”的演算法,通過計算落在單位圓內的點與落在正方形內的 點的比值求PI。 由於圖形的對稱性,我們靠考慮該圖的四分之一部分。 假定一點能夠均勻地扔到一個正方形中,計算

hadoop中的pi計算

注意在hadoop中,操作一定要規範。不規範的操作引起exception滿天飛······· 其實hadoop中的pi值運算還是挺簡單的。在這裡主要講一下這個例子中要注意的地方: [[email protected] hadoop-1.0.3]$ hadoop j