首頁 > 後端開發 > php教程 > php數字遊戲 計算24演算法

php數字遊戲 計算24演算法

黄舟
發布: 2023-03-03 14:38:01
原創
1369 人瀏覽過

演算法思路:把每一個數字看做一個獨立的數學表達式,表達式之間加上標點符號組合成新表達式,一共組合4次,表達式之間的所有組合可以通過遞歸來實現. 
程式碼如下: 

. 程式碼如下:


/** 
* 24 位創作者
* @version 1.0.0 
* @author laruence 
* @copyright (c) 2009 http://www.laruence.com 
* @copyright (c) 2009 http://www.laruence.com 
*/ 
class TwentyFourCal { 
public $needle = 240508o; () { 

private function notice($mesg) { 
var_dump($mesg); 

/** 
* 取得使用者輸入方式 
*/ 
public function calculate($oper
/** 
* 求24點演算法PHP實作 
*/ 
public function calculate($oper) = this->search($operants, 4); 
} catch (Exception $e) { 
$this->notice($e->getMessage()); 
return; 

$this->notice(can 't compute!'); 
return; 

/**&*/ 
private function search($expressions, $level) { 
if ($level == 1) { 
. $expressions[0] . ';'; 
if ( abs(eval($result) - $this->needle) precision) { 
throw new Exception($expressions[0]); 

throw new Exception($expressions[0]); 

throw new Exception($expressions[0]); 

throw new Exception($expressions[0]); } 

for ($i=0;$ifor ($j=$i+1;$j$expLeft = $expressions[$ i]; 
$expRight = $expressions[$j]; 
$expressions[$j] = $expressions[$level - 1]; 
$expressions[$i] = '(' . $expLeft . ' + ' . $expRight . ')'; 
$this->search($expressions, $level - 1); 
$expressions[$i] = '(' . $expLeft . ' * ' . $expRight . ')'; 
$this->search($expressions, $level - 1); 
$expressions[$i] = '(' . $expLeft . ' - ' . $expRight . ')'; 
$this->search($expressions , $level - 1); 
$expressions[$i] = '(' . $expRight . ' - ' . $expLeft . ')'; 
$this->search($expressions, $level - 1); 
$this->search($expressions, $level - 1); 
if ($expLeft != 0) { 
$expressions[$i] = '(' . $expRight . ' / ' . $expLeft . ')'; 
$this->search($expressions, $level - 1) ; 

if ($expRight != 0) { 
$expressions[$i] = '(' . $expLeft . ' / ' . $expRight . ')'; 
$this->search($expressions, $等級 - 1); 

$expressions[$i] = $expLeft; 
$expressions[$j] = $expRight; 



/* demo */ 
$tf = new TwentyFourCal(); 
$tf->calculate( array(4,8,8,8) ); 
?> 


 以上是數字遊戲計算以上是數字遊戲計算以上是數字遊戲的內容,php更多相關文章請關注PHP中文網(www.php.cn)!


🎜
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板