一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - php數字游戲 計算24算法

php數字游戲 計算24算法

2020-01-02 16:26php教程網 PHP教程

輸入任意4個數字,然后對其進行+-*/組合,所得數學表達式值等于24

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

復制代碼代碼如下:


<?php 
/** 
* A 24 maker 
* @version 1.0.0 
* @author laruence<laruence at yahoo.com.cn> 
* @copyright (c) 2009 http://www.laruence.com 
*/ 
class TwentyFourCal { 
public $needle = 24; 
public $precision = '1e-6'; 
function TwentyFourCal() { 

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

/** 
* 取得用戶輸入方法 
*/ 
public function calculate($operants = array()) { 
try { 
$this->search($operants, 4); 
} catch (Exception $e) { 
$this->notice($e->getMessage()); 
return; 

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

/** 
* 求24點算法PHP實現 
*/ 
private function search($expressions, $level) { 
if ($level == 1) { 
$result = 'return ' . $expressions[0] . ';'; 
if ( abs(eval($result) - $this->needle) <= $this->precision) { 
throw new Exception($expressions[0]); 


for ($i=0;$i<$level;$i++) { 
for ($j=$i+1;$j<$level;$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); 
if ($expLeft != 0) { 
$expressions[$i] = '(' . $expRight . ' / ' . $expLeft . ')'; 
$this->search($expressions, $level - 1); 

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

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


return false; 

function __destruct() { 


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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产日产精品久久久久快鸭 | 美日毛片 | 国产精品日本一区二区不卡视频 | 国产日韩精品一区二区在线观看 | 欧美在线视频 一区二区 | 91九色视频无限观看免费 | 欧美人禽杂交狂配无删完整 | 青草视频网站在线观看 | 欧美精品三区 | 国产欧美日韩在线播放 | 国产免费好大好硬视频 | 免费一级欧美片在线观看 | 国产综合亚洲专区在线 | 2020最新版的ab片 | 成人私人影院在线版 | 久久久亚洲国产精品主播 | 九九国产在线视频 | 美女被灌浣肠失禁视频 | 欧美精品一区二区在线观看播放 | 精品性久久 | 国产亚洲精品九九久在线观看 | 奇米影视亚洲狠狠色 | 猛男强攻变sao货 | 波多野结衣家庭教师 | 国产一区二区三区毛片 | 香蕉久久久久久狠狠色 | 奇米7777第四色 | 91久久国产青草亚洲 | 黄色a视频| 成3d漫二区三区四区 | 国产亚洲精品一区二区在线观看 | 天天干天天操天天碰 | 草莓在深夜释放自己软件 | 欧美日韩在线一区 | 日本无遮挡拍拍拍凤凰 | 国产在线观看人成激情视频 | tolove第一季动画在线看 | 四虎影库紧急大通知 | 美女禁区视频免费观看精选 | 国产成人啪精品视频站午夜 | jj免费视频 |