作者XII (Mathkid)
看板Math
標題Re: [其他] 挖礦 生產 效率最佳問題求解?
時間Mon Jun 9 02:50:04 2014
※ 引述《pochadog (等待)》之銘言:
: 前情提要:
: 大部分的人應該都有玩過即時戰略的遊戲,如世紀帝國 星海爭霸 魔獸爭霸...等
: 其中一個很重要的要素為經濟 亦即是在短時間內可以累積大量的資本
: 並生產部隊運用戰術消滅對方並達到勝利
: 問題如下:
: 假設一個工人每 1 秒鐘可以生產 1 塊錢
: 每多生產一個工人需花費 50 塊錢 和 10 秒鐘
: 您起始共有 1 個工人 及 50 塊錢
: 問題 1 , 如果要以最快的速度存到 200 塊錢 , 請問生產幾個工人是最快的?
: 總共需要多少時間?
: 問題 2 , 如果要以最快的速度存到 1000 塊錢 ,請問生產幾個工人是最快的?
: 總共需要多少時間?
設 f_n(x) 表最後用 n 個工人存到 x 元的最短時間, x>50
故一開始要全力生產工人
=> n(f_{n+1}(x)-f_n(50)) + (f_{n+1}(x)-f_n(50)-10) = x
^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^
前 n 人生完第 n+1 人 第 n+1 人生錢的時間
後生錢的時間
故 f_{n+1}(x) = f_n(50)+(x+10)/(n+1)
f_1(x) = x-50
f_2(x) = 0+(x+10)/2
f_3(x) = 30+(x+10)/3
...
f_n(x) = (x-50)/n+60(1/2+1/3+..+1/n)
f_{n+1}(x)-f_n(x) = 60/(n+1)-(x-50)/{n(n+1)} = {1/[n(n+1)]}{60n-(x-50)}
可知生產 k = ceiling((x-50)/60) 個工人時,
可花最少時間 (x-50)/k+60(1/2+1/3+..+1/k)
-------------------------------------------------------
200元 => k = 3 工人 => 100 秒
1000元 => k = 16 工人 => 950/16+60(1/2+1/3+..+1/16) 秒
: 問題 3 , 當起始是 0 塊錢的時候,起始的工人 為 n 的時候,以 200 塊錢為目標
: n 和 n+1 的效率是相同的?
: 問題 4 , 您可否使用一個數學式表示如此的生產行為,讓玩家在有特定目標時,
: 可以馬上知道最有效率的工人數目為何?
類似, 你可自己做做看
: 問題1 ~ 2 我用窮舉法可以得知,但是無法化成公式
: 由於這個問題是我自己無聊亂想的,所以可能設定有問題
: 能否協助小弟解決此問題
: 謝謝!!!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.24.73.141
※ 文章網址: http://www.ptt.cc/bbs/Math/M.1402253407.A.975.html
※ 編輯: XII (114.24.73.141), 06/09/2014 02:55:09
→ XII :對了,這是連續化的版本 06/09 03:05
推 KanoLoa :!!!!!!!! 06/09 12:50
→ cacud :我們需要更多的金礦 06/09 16:31