作者bigpigbigpig (To littlepig with love)
看板C_and_CPP
標題Re: [討論] ?A?B猜數字遊戲的AI
時間Sat Sep 22 15:21:05 2012
※ 引述《bleed1979 (十三)》之銘言:
貼一下我的結果,比 bleed1919 網友還略遜一籌:
1 2 3 4 5 6 7 8 9
1 13 108 596 1668 1768 752 129 5
1*1 + 2 * 13 + 3 * 108 + 4 * 596 + 5 * 1668 +
6 * 1768 + 7 * 752 + 8 * 129 + 9 * 5
= 1 + 26 + 324 + 2384 + 8340 + 10608 + 5264 + 1032 + 45
= 28024
28024 / 5040 = 5.560317
code :
http://codepad.org/VvbsoDCa
Algorithm 要點:
xAxB(key,trial) == xAxB(trial,key)
因此可以把前面所猜測,但沒猜對 ( 4A 0B ) 的 trial 拿來當準 key,
刪除候選集合中比對結果不符合的答案,以縮小候選集合
( 即 shrink() 函式 )。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.243.150.101
推 changyuheng:這是最經典的作法,邏輯最精簡,結果也不太差,C/P 高 09/22 20:29
→ changyuheng:各語言的此種演算法: 09/22 20:30
※ 編輯: bigpigbigpig 來自: 140.96.145.95 (09/24 19:04)