验证Ross《随机过程》(第二版)1.9C
生活随笔
收集整理的這篇文章主要介紹了
验证Ross《随机过程》(第二版)1.9C
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
針對4條射線,
射線擁有的定點數分別為:5,6,4,7個點
驗證代碼如下:
# -*- coding: utf-8 -*- import sys reload(sys) sys.setdefaultencoding('utf-8') # @Author: Chi Yu # @Date: 2018-06-15 13:40:21 # @Last Modified by: appleyuchi # @Last Modified time: 2018-06-15 15:45:26print"hello world" import random sum1=0#在第1條射線上的累計步數 sum2=0 sum3=0 sum4=0leaf1=0#第1個射線上的葉子被訪問的次數 leaf2=0#第2個射線上的葉子被訪問的次數 leaf3=0#第3個射線上的葉子被訪問的次數 leaf4=0#第4個射線上的葉子被訪問的次數ray=[5,6,4,7]#每條射線的頂點數,不包含射線的起點,即star graph的中心點0. ray_number=len(ray)def ray_select(ray_number):ray_count= random.randrange(1,ray_number+1,1)#注意這個隨機范圍是[1,ray_number+1),ray_number+1不能被取到,所以隨機概率大概是1/4return ray_counttotal=2000for i in range(total):#0到9999,共10000輪print "---------------------------------------------------index=%s-------------------------------------"%(i)ray_count=ray_select(ray_number)#初始選擇射線print "ray_count",ray_countsum1=1#因為中心點選擇射線后,當前積累步數是1while True:step= random.randrange(-1,2,2)#隨機范圍[-1,2),右側開區間,間隔為2.所以最終產生的數為-1和1print"step=",stepsum1=sum1+step#這里可能是加,也可能是減,加到長度為ray1的時候,說明訪問到了葉子節點print"sum1=",sum1print"----------------"if sum1==0:#如果跳回中心點0 ray_count=ray_select(ray_number)#選擇完射線后,繼續進入下一輪的while循環sum1=1continue#-----------------如果訪問到第1條射線的葉子節點------------------------------------if ray_count==1 and sum1==ray[0]:#如果訪問到了葉子節點# sum1=sum1-1#葉子節點具有反射壁功能,葉子節點的下一步以概率1跳回臨近節點sum1=0leaf1=leaf1+1break#這一輪實驗結束,跳出內循環#-----------------如果訪問到第2條射線的葉子節點------------------------------------if ray_count==2 and sum1==ray[1]:#如果訪問到了葉子節點# sum1=sum1-1#葉子節點具有反射壁功能,葉子節點的下一步以概率1跳回臨近節點leaf2=leaf2+1break#這一輪實驗結束,跳出內循環#-----------------如果訪問到第3條射線的葉子節點------------------------------------if ray_count==3 and sum1==ray[2]:#如果訪問到了葉子節點# sum1=sum1-1#葉子節點具有反射壁功能,葉子節點的下一步以概率1跳回臨近節點leaf3=leaf3+1break#這一輪實驗結束,跳出內循環#-----------------如果訪問到第4條射線的葉子節點------------------------------------if ray_count==4 and sum1==ray[3]:#如果訪問到了葉子節點# sum1=sum1-1#葉子節點具有反射壁功能,葉子節點的下一步以概率1跳回臨近節點leaf4=leaf4+1break#這一輪實驗結束,跳出內循環print"leaf1=",leaf1 print"leaf2=",leaf2 print"leaf3=",leaf3 print"leaf4=",leaf4total=total*1.0 print"The leaf1 ratio is:",(leaf1/total) print"The leaf2 ratio is:",(leaf2/total) print"The leaf3 ratio is:",(leaf3/total) print"The leaf4 ratio is:",(leaf4/total)實驗結果為:
根據書上公式計算:
擁有5個頂點的射線上的末端(葉子節點)被首次訪問的概率為:
(1/5)/[(1/5)+(1/4)+(1/6)+(1/7)]=0.263
?
擁有6個頂點的射線上的末端(葉子節點)被首次訪問的概率為:
(1/6)/[(1/5)+(1/4)+(1/6)+(1/7)]=0.219
?
擁有4個頂點的射線上的末端(葉子節點)被首次訪問的概率為:
(1/4)/[(1/5)+(1/4)+(1/6)+(1/7)]=0.329
擁有7個頂點的射線上的末端(葉子節點)被首次訪問的概率為:
(1/7)/[(1/5)+(1/4)+(1/6)+(1/7)]=0.188
總結
以上是生活随笔為你收集整理的验证Ross《随机过程》(第二版)1.9C的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab验证Ross随机过程(第二版
- 下一篇: 先验概率与后验概率、贝叶斯区别与联系