作者loveyoualway (瘋子)
看板java
標題[問題] 猜數字邏輯
時間Tue Jul 3 22:01:01 2012
題目 有 1 2 3 4 5個數字
猜4個數字(可重複)
例如 謎底 2245
玩家猜 2151 =>1A(位置對數字對)1B(位置錯但是數字對)
推論直到達到答案,以最快最有效率猜測方式是?(排除運氣)
有人有一套猜測邏輯或公式嗎 需在最少次數內猜對(5~8次)
麻煩幫幫忙 想很久 歸納不出來
謝謝大大
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.170.29.117
1F:推 LaPass:ptt的遊樂場裡也有XD 另,數字重複的話A跟B的數目怎麼判斷? 07/03 22:54
2F:→ s3748679:取交集 -> 去除重複元素 -> 反查位置 -> 統計ab 這樣呢? 07/03 23:38
3F:→ s3748679:喔喔... 是猜測邏輯..... 拍謝 07/03 23:39
4F:→ gwokae:前陣子才用bash重寫了,不過只有寫兩個字串重複與位置 07/04 00:40
6F:→ gwokae:原來是要做猜的AI,我錯了不要理我 Orz... 07/04 00:46
8F:推 LaPass:我看不懂樓上那種寫法.... 請問怎麼看懂? 關鍵字是....? 07/04 00:57
9F:→ s3748679:PS: 只有比對的部分^^" , AI的部分只有想到篩選法.. 07/04 00:58
10F:推 if4:先用排列組合製作一個文字檔(猜文字)這是題庫,猜的時候用消去 07/04 00:59
11F:→ if4:法去掉不正確的答案,這樣猜,電腦比較有效率... 07/04 01:01
12F:→ s3748679:回L大... 這是憑直覺下去寫的,不專業的.. orz... 07/04 01:01
13F:→ s3748679:步驟1、2、3都分成 "如何算" 和 "代入後的過程與結果" 07/04 01:06
14F:→ s3748679:另外#字號是指集合中元素個數 ex: #{1,2,5} = 3 07/04 01:08
15F:→ s3748679:大概就這樣吧~ (搔頭^^" 07/04 01:10
16F:→ s3748679:那個.. 能請教下虛擬碼要怎寫會比較好 (小聲 囧" 07/04 01:19
17F:推 LaPass:不好意思,我也沒學過虛擬碼 XD 07/04 07:58
19F:推 PsMonkey:這個在 Javaworld@tw 已經在 n 年前結案了 XD 07/04 09:07
21F:推 LaPass:不偷看解答自己寫一個出來會比較好玩 =w= 07/04 09:49
22F:→ LaPass:雖然寫一陣子後都知道,最快速的解法是google去找方法.... 07/04 09:51