24點遊戲:
輸入:n1,n2,n3,n4
輸出:若能通過+ - * / 和括號混合運算,得到運算結果為24,則輸出乙個對應的運算表示式
窮舉法:
對4個數字全排列有4!=24種排列。
4個數字共需要3個運算子,同乙個運算子可以重複出現,則有4x4x4=64種情況。
對於4個數字而言,共有以下5中加括號的方式:
(a(b(cd))),(a((bc)d)),((ab)(cd)),((a(bc))d),(((ab)c)d)。
所以遍歷的表示式最多有24*64*5=7680種。即使採用逆波蘭表示式,總數不變。
/*24點遊戲演算法,窮舉法:
f(array)
foreach(從陣列中取任意兩個數的組合) }
}
*/
#include#include#include
using
namespace
std;
const
double threshold=1e-6
;const
int cardsnumber=4
;const
int resultvalue=24
;double
number[cardsnumber];
string
result[cardsnumber];
bool pointsgame(int
n)
else
return
false
; }
for(int i=0; ii)
for(int j=i+1; jj)
if(a!=0
)
number[i]=a;
number[j]=b;
result[i]=expa;
result[j]=expb;
}return
false;}
intmain()
if(pointsgame(cardsnumber))
cout
<<"
success.
"
fail.
"
}
24點遊戲(窮舉法)
三 include include double cal double a,double b,int op op 0 1 2 3 if b 0.0 分母為0 return 999.0 else return a b bool isequal double d1,double d2 兩個浮點數是否近似...
窮舉法求解24點
看到網上更多的是推薦使用遞迴,但是自己對遞迴一向有點頭疼,所有使用窮舉法求解。vs2005下測試通過。1 2使用窮舉法求解24點。3但是仍然有乙個問題 對於1 2與2 1,因為順序的關係,4系統仍然認為其是兩個解,此問題尚待解決。5author chris 6date 2013 06 18 7 8 ...
24點問題(窮舉法 C )
算24點 point24 問題描述 幾十年前全世界就流行一種數字遊戲,至今仍有人樂此不疲 在中國我們把這種遊戲稱為 算24點 您作為遊戲者將得到4個1 9之間的自然數作為運算元,而您的任務是對這4個運算元進行適當的算術運算,要求運算結果等於24。您可以使用的運算只有 您還可以使用 來改變運算順序。注...