3388 24及24點遊戲的窮舉演算法

2021-08-29 17:14:14 字數 884 閱讀 9922

偶爾看到一題:用3 3 8 8 四個數和加減乘除組合得出24,前提是用完這四個數,幾年沒好好思考了,偶算了半天沒答案,就寫了個窮舉演算法,呵呵,貌似結果只有一種啊,各位兄台還有其它答案麼?

package my;

public class digitalpuzzle ;

private int operators=new int;//0 1 2 3 stand for + - * /

private float allseries=new float[4][4*4*4*4]; //四個運算元所有可能的組合

private int alloperats=new int[3][4*4*4]; //三個操作符所有可能的組合

private int validseriessum=0; //有效的運算元組合個數

// 窮舉所有的運算元排列及操作符排列

public void init()

int kk=0;

for(i=0;i<4;i++)

for(j=0;j<4;j++)

for(m=0;m<4;m++)

for(n=0;n<4;n++)

if(i!=j && i!=m && i!=n && j!=m && j!=n && m!=n)

validseriessum=kk; }

public float calcu(float op1, float op2, int op) }

// 列印計算結果

public string show(float op, int opt, int result){

string opts=new string[opt.length];

for(int i=0;i列印結果: 8.0/(3.0-(8.0/3.0)) = 24

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點遊戲

24點遊戲 輸入 n1,n2,n3,n4 輸出 若能通過 和括號混合運算,得到運算結果為24,則輸出乙個對應的運算表示式 窮舉法 對4個數字全排列有4 24種排列。4個數字共需要3個運算子,同乙個運算子可以重複出現,則有4x4x4 64種情況。對於4個數字而言,共有以下5中加括號的方式 a b cd...

窮舉法求解24點

看到網上更多的是推薦使用遞迴,但是自己對遞迴一向有點頭疼,所有使用窮舉法求解。vs2005下測試通過。1 2使用窮舉法求解24點。3但是仍然有乙個問題 對於1 2與2 1,因為順序的關係,4系統仍然認為其是兩個解,此問題尚待解決。5author chris 6date 2013 06 18 7 8 ...