2016年9月9日 星期五

python 程式設計50題測試範例-49

49、假設有一牛在長100寸之旗桿的中間點上做上下移動。其移動之規律依照天候而
      變,若為晴天則當天只向下移動1寸,陰天不動,雨天則當天只向上移動1寸,
      假設晴天陰天、雨天出現之機率分別為5/103/102/10,試設計一程式模擬該
      蝸牛之運動,求出50天後該生物所在之位置距離頂點多遠,及移動之總距離。
      試模擬5次,印出每次結果並求其平均值。


設 距離頂點Y, 移動總距離S 
初始值: Y = 50(因為在旗桿中間點), S = 0 
if
晴天, then: 
Y = Y + 1 
S = S + 1 
(
陰天沒移動,YS皆無變化) 
if
雨天, then: 
Y = Y - 1 
S = S + 1 

用亂數模擬晴天,雨天,陰天: 
亂數產生1~10的整數, 
1~5
表示晴天, 機率5/10 
6~8
表示陰天, 機率3/10 
9~10
表示雨天, 機率2/10 


程式:
#coding=utf8

import random
#randint(a, b) 可以產生一個介於 a 跟 b 之間的亂數 N (a <= N <= b)。
Sum1=0
Sum2=0

for j in range (1,6):
    Y=50
    S=0
          
    for i in range (1,51):
      a= random.randint(1,10)
      # print(a,end=",") for Debug除錯用
      if (a<=1 and a<=5):
          Y=Y+1
          S=S+1
      elif (a<=6 and a<=10):     
          Y=Y-1
          S=S+1

    print("第",j,"次 : 離頂點",100-Y,"移動總距離",S)      
    Sum1=Sum1+100-Y
    Sum2=Sum2+S


Sum1=Sum1/5
Sum2=Sum2/5

print(" 離頂點 平均值 :-> ",Sum1,"移動平均值 :-> ",Sum2)
     
#==================

結果:
================= RESTART: D:/程式語言 Python 入門/50題/Ex50-49.py =================
第 1 次 : 離頂點 78 移動總距離 34
第 2 次 : 離頂點 73 移動總距離 35
第 3 次 : 離頂點 70 移動總距離 36
第 4 次 : 離頂點 73 移動總距離 29
第 5 次 : 離頂點 66 移動總距離 32
 離頂點 平均值 :->  72.0 移動平均值 :->  33.2
>>> 
================= RESTART: D:/程式語言 Python 入門/50題/Ex50-49.py =================
第 1 次 : 離頂點 70 移動總距離 32
第 2 次 : 離頂點 70 移動總距離 30
第 3 次 : 離頂點 71 移動總距離 31
第 4 次 : 離頂點 71 移動總距離 27
第 5 次 : 離頂點 77 移動總距離 29
 離頂點 平均值 :->  71.8 移動平均值 :->  29.8
>>> 
================= RESTART: D:/程式語言 Python 入門/50題/Ex50-49.py =================
第 1 次 : 離頂點 73 移動總距離 35
第 2 次 : 離頂點 74 移動總距離 32
第 3 次 : 離頂點 72 移動總距離 38
第 4 次 : 離頂點 63 移動總距離 29
第 5 次 : 離頂點 66 移動總距離 30
 離頂點 平均值 :->  69.6 移動平均值 :->  32.8
>>> 

沒有留言:

張貼留言

Messaging API作為替代方案

  LINE超好用功能要沒了!LINE Notify明年3月底終止服務,有什麼替代方案? LINE Notify將於2025年3月31日結束服務,官方建議改用Messaging API作為替代方案。 //CHANNEL_ACCESS_TOKEN = 'Messaging ...