php趣味100例 - php天平称物
php趣味100例 - php天平称物
(php,php趣味,php编程,php穷举法,php for循环的运用)
<?php/*天平称物4个砝码:总质量是40克。砝码的重量是整数。各不相等这个组合可以称出1-40克的任意重量w1,w2,w3,w4w1+w2+w3+w4=40w1!=w2!=w3!=w4穷举法这个组合可以称出1-40任意的重量w 为任意重量(在1-40之间)a1*w1+a2*w2+a3*w3+a4*w4 = Wa1~a4 在1 0 -1之间取值比如如果要称重要为8的话a1*w1+a2*w2+a3*w3+a4*w4 = 8$flag=1表示可以40以内任意的值 0表示不能穷举法*/header("Content-Type: text/html; charset=utf-8");?><?php $w1=0;$w2=0;$w3=0;$w4=0;$w=0; for($w1=1;$w1<=40;$w1++){ for($w2=$w1+1;$w2<=40-$w1;$w2++){ for($w3=$w2+1;$w3<=40-$w2-$w1;$w3++){ if(($w4=40-$w1-$w2-$w3)>=$w3){ if($w1!=$w2 && $w2!=$w3 && $w3!=$w4 && $w4!=$w1){ for($w =1,$flag=1;$w<41&&$flag==1;$w++){//默认是1 for($a1=1,$flag=0;$a1>-2;$a1--){//设成0 for($a2=-1;$a2<2;$a2++){ for($a3=-1;$a3<2;$a3++){ for($a4=-1;$a4<2;$a4++){ if( ($a1*$w1+$a2*$w2+$a3*$w3+$a4*$w4) == $w ){ //echo $w.'='.$a1.'*'.$w1.' + '.$a2.'*'.$w2.' + '.$a3.'*'.$w3.' + '.$a4.'*'.$w4.'<br />'; $flag =1;//如果能相等就设为1 } } } } } } if($flag==1){ echo '四个砝码:'.$w1.' '.$w2.' '.$w3.' '.$w4; } } } } } } // ?>
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。