Re: [請益] 想請問這個 time complexity 估法?

看板Soft_Job作者 (雨蕭)時間7年前 (2018/11/19 22:11), 編輯推噓7(705)
留言12則, 8人參與, 7年前最新討論串2/2 (看更多)
算一下期望值看看,有錯請鞭小力一點。 因為你的rand沒說只取整數,從線段來看就是總長是R, 落在N以內就結束(機率N/R),N到R之間就繼續(機率(R-N)/R)。 期望值 E = 1*(N/R) + 2*(N/R)*((R-N)/R) + 3*(N/R)*((R-N)/R)^2 + ...... ((R-N)/R) * E = 1*(N/R)*((R-N)/R) + 2*(N/R)*((R-N)/R)^2 + ...... 相減後得 (N/R) * E = (N/R) + (N/R)*((R-N)/R) + (N/R)*((R-N)/R)^2 + ...... = (N/R) / (N/R) = 1 (無窮等比級數,和等於 a/1-r ) E = R / N 所以期望值會跑的次數是R/N次,一般你在說R > N > 0的時候, 因為N還是不固定(儘管有上限),所以不會將它當作O(R/R)=O(1)來看, 我的話我會回答average case為O(R/N)或期望值為R/N次就好。 ※ 引述《wheels ()》之銘言: : # Python3 : # rand() will return number from [0, R) with the same posibility : # assume R > N > 0 : def getNum(N): : num = rand() : while num > N: : num = rand() : return num : # How many times the while-loop may executed? : 若要以 R 跟 N 表示 time complexity : 想請問這題有什麼方法可以下手嗎? : 感謝各位大神們 :) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.168.164.196 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1542636719.A.E4E.html

11/19 22:30, 7年前 , 1F
很清楚的解答,非常感謝您的回覆!
11/19 22:30, 1F

11/19 22:34, 7年前 , 2F
期望值定義是什麼,忘光了,哈啊,要去google了
11/19 22:34, 2F

11/19 22:52, 7年前 , 3F
期望值要google.....
11/19 22:52, 3F

11/19 23:01, 7年前 , 4F
很久非接觸高中數學,又是非本科,大學工科沒接觸離散
11/19 23:01, 4F

11/19 23:01, 7年前 , 5F
,所以現在想走程式超弱
11/19 23:01, 5F

11/20 01:06, 7年前 , 6F
推(Y)。事件成功機率的倒數就是期望值!
11/20 01:06, 6F

11/20 01:19, 7年前 , 7F
記得是 平均進行一次所能得到的回報-進行一次的成本
11/20 01:19, 7F

11/20 01:21, 7年前 , 8F
像賭博就負的…
11/20 01:21, 8F

11/20 11:32, 7年前 , 9F
除了期望值之外 還可以計算 concentration
11/20 11:32, 9F

11/20 20:01, 7年前 , 10F
樓上大神
11/20 20:01, 10F

11/20 20:33, 7年前 , 11F
最近剛學機率 我也試試 把0到R分成兩段 0到N機率是N/R
11/20 20:33, 11F

11/20 20:34, 7年前 , 12F
所以幾何分佈期望值就是R/N 應該吧
11/20 20:34, 12F
文章代碼(AID): #1RyiIlvE (Soft_Job)
文章代碼(AID): #1RyiIlvE (Soft_Job)