問題:一副撲克牌,每張牌表示[1,13]之間的乙個整數,任意抽4張,用+-/*運算,
使得結果等於24。
分析:4個數,4種運算,選擇乙個計算順序,選擇3個運算子,最多不過4k種組合,
剪枝都省了,純暴力搜尋。
記4個數為a, b, c, d,運算子為op1, op2, op3,那麼所有的計算組合,都可以表示
為以下兩種之一:(其中,(ca, cb, cc, cd)是a,b,c,d 4個數生成的全排列中的一組)
(ca op1 cb) op2 (cc op3 cd)
(ca op1 cb) op2 cc op3 cd
現在問題已經轉化成兩個經典小問題:
4個數,生成全排列
4種運算,允許有重複的取3個
有了思路,**是時間問題,隨手用c寫了個,只求一組解便退出,無解不輸出。
C 實現簡單24點遊戲
隨機生成4個代表撲克牌牌面的數字字母,程式自動列出所有可能算出24的表示式,用擅長的語言 c c j a或其他均可 實現程式解決問題。程式風格良好 使用自定義注釋模板 列出表示式無重複。以下為源 include include include include using namespace std ...
24點遊戲簡單版
題目名稱 24點遊戲 經典的紙牌益智遊戲 題目分析 隨機生成4個代表撲克牌牌面的數字字母,程式自動列出所有可能算出24的表示式,可以利用窮舉法列出4個數字加減乘除的各種可能性,包括括號的演算法,並且要利用迴圈控制計算範圍,防止出現重複的表示式。演算法構造 1 利用隨機函式生成4個隨機數 2 將4個數...
Python 「24點遊戲的簡單實現「
問題描述 從撲克中每次取出4張牌。使用加減乘除,第乙個能得出24者為贏。其中,j代表11,q代表12,k代表13,a代表1 按照要求程式設計解決24點遊戲。思路 1 隨機產生四個數 1 13 將其排列組合結果去重新增到乙個列表中 2 列舉計算並去重 3 顯示 author yyx date 2018...