[問題] 找牆上的門問題

看板Prob_Solve (計算數學 Problem Solving)作者 (老被好人當的人)時間15年前 (2009/03/19 00:18), 編輯推噓5(506)
留言11則, 7人參與, 最新討論串1/1
Door in a wall. You are facing a wall that stretches infinitely in both directions.There is a door in the wall,but you know neither how far away nor in which direction.You can see the door only when you are right next to it.Design an algorithm that enables you to reach the door by walking at most O(n) steps where n is the (unknown to you) number of steps between your initial position and the door. 我這學期開始修演算法 但或許我真的沒有數理方面的天份吧 演算法教什麼幾乎都不懂 這題是我課本的例題 類似益智問答的演算法題目 我們老師很重視這一題 但是我卻完全看不懂 這題是在無窮遠的牆上找門 老師當初是給我們提示說 人站在牆前卻不知道門到底左邊右邊 也不知道門多遠 所以可以先往右走n步 找不到就回到原點再往左走n步 而找不到又回到右邊再加n步的距離 以此類推 這個概念老師在說的時候能夠理解 但是要我寫成演算法我就卡住了 一開始我是想到離散數學有教過証自然數可數的題目 有覺得跟離散有點像 但是又不敢確定 百思不得其解只好上來問人了 請求哪位教我這題該怎麼寫才好 m(_ _)m -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.170.14.206

03/19 04:29, , 1F
以2^i級數作步數來左右尋找
03/19 04:29, 1F

03/19 21:52, , 2F
其實這跟演算法無關了吧 因為演算法已經告訴你了
03/19 21:52, 2F

03/19 21:53, , 3F
剩下的是程式設計實做了 . 大概兩層loop解決吧
03/19 21:53, 3F

03/20 02:06, , 4F
演算法課本的例題跟演算法無關@@?
03/20 02:06, 4F

03/21 09:20, , 5F
重點是要証明這個方法是O(n)吧? (方法就是你原文寫的)
03/21 09:20, 5F

03/21 16:29, , 6F
問題的確在於不知道n,卻必須控制步數在O(n)。可以想到的
03/21 16:29, 6F

03/21 16:31, , 7F
必須快速增加左右搜尋的步數,也就是在某次的搜尋步數
03/21 16:31, 7F

03/21 16:32, , 8F
與之前的總步數在same order。所以我想一樓的方法就可以
03/21 16:32, 8F

03/22 22:51, , 9F
一樓對, 這跟演算法有關, 一次增加的比例太少會超過 O(n)
03/22 22:51, 9F

03/22 22:51, , 10F
需要演算法證明 (雖然還算 trivial)
03/22 22:51, 10F

03/28 20:05, , 11F
可以換成沒有上限的去猜一個商品的價錢
03/28 20:05, 11F
文章代碼(AID): #19mHwzcJ (Prob_Solve)
文章代碼(AID): #19mHwzcJ (Prob_Solve)