PHP经典题:百钱百鸡问题(穷举算法)_PHP教程
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP经典题:百钱百鸡问题(穷举算法)_PHP教程,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3123字,纯文字阅读大概需要5分钟。
内容图文
![PHP经典题:百钱百鸡问题(穷举算法)_PHP教程](/upload/InfoBanner/zyjiaocheng/189/f55f4b71f8234e64894a6e147814cada.jpg)
PHP经典题:百钱百鸡问题(穷举算法)
百钱百鸡问题: 已知:公鸡5元一只,母鸡3元一只,小鸡一元3只 现用100元钱买了100只鸡,问:公鸡母鸡小鸡各几只? --请考虑尽可能高效的方法 思路: 如果有0只公鸡,0只母鸡,1只小鸡,数量是100吗?价钱是100吗? 否 如果有0只公鸡,0只母鸡,2只小鸡,数量是100吗?价钱是100吗? 否 如果有0只公鸡,0只母鸡,3只小鸡,数量是100吗?价钱是100吗? 否 ...... 如果有0只公鸡,0只母鸡,100只小鸡,数量是100吗?价钱是100吗? 否 如果有0只公鸡,1只母鸡,1只小鸡,数量是100吗?价钱是100吗? 否 如果有0只公鸡,1只母鸡,2只小鸡,数量是100吗?价钱是100吗? 否 ...... 如果有0只公鸡,1只母鸡,100只小鸡,数量是100吗?价钱是100吗? 否 如果有0只公鸡,2只母鸡,1只小鸡,数量是100吗?价钱是100吗? 否 ...... 如果有100只公鸡,100只母鸡,0只小鸡,数量是100吗?价钱是100吗? 否 如果有100只公鸡,100只母鸡,1只小鸡,数量是100吗?价钱是100吗? 否 如果有100只公鸡,100只母鸡,2只小鸡,数量是100吗?价钱是100吗? 否 ...... 这就叫做:穷举思想 (就是将所以可能的情况挨个去测试) PHP代码: echo "原始思路:
"; $count = 0; for($gongji = 0; $gongji <= 100; ++$gongji) { for($muji = 0; $muji <= 100; ++$muji) { for($xiaoji = 0; $xiaoji <= 100; ++$xiaoji) { if($gongji*5 + $muji*3 + $xiaoji/3 == 100 && $gongji + $muji + $xiaoji == 100) { echo "公鸡有 $gongji 只;母鸡有 $muji 只;小鸡有 $xiaoji 只;"; } $count++; //计算次数 } } } echo "
次数:$count"; echo '
'; echo "
代码优化一:
"; $count = 0; for($gongji = 0; $gongji <= 100; ++$gongji) { for($muji = 0; $muji <= 100; ++$muji) { $xiaoji = 100 - $gongji - $muji; if($gongji*5 + $muji*3 + $xiaoji/3 == 100) { echo "公鸡有 $gongji 只;母鸡有 $muji 只;小鸡有 $xiaoji 只;"; } $count++; //计算次数 } } echo "
次数:$count"; echo '
'; echo "
代码优化二:
"; $count = 0; for($gongji = 0; $gongji <= 100/5; ++$gongji) { //根据总价:则公鸡最多有100/5只 for($muji = 0; $muji <= 100/3; ++$muji) { //根据总价:则母鸡最多有100/3只 $xiaoji = 100 - $gongji - $muji; if($gongji*5 + $muji*3 + $xiaoji/3 == 100) { echo "公鸡有 $gongji 只;母鸡有 $muji 只;小鸡有 $xiaoji 只;"; } $count++; //计算次数 } } echo "
次数:$count"; echo '
'; echo "
代码优化三:
"; $count = 0; for($gongji = 0; $gongji <= 100/5; ++$gongji) { //根据总价:则公鸡最多有100/5只 for($muji = 0; $muji <= (100-$gongji*5)/3; ++$muji) { //根据总价与公鸡所花的钱:则母鸡最多有(100-$gongji*5)/3只 $xiaoji = 100 - $gongji - $muji; if($gongji*5 + $muji*3 + $xiaoji/3 == 100) { echo "公鸡有 $gongji 只;母鸡有 $muji 只;小鸡有 $xiaoji 只;"; } $count++; //计算次数 } } echo "
次数:$count"; echo '
'; echo "
代码优化四:
"; $count = 0; for($gongji = 0; $gongji <= 100/5; ++$gongji) { //根据总价:则公鸡最多有100/5只 for($muji = 0; $muji <= (100-$gongji*5)/3; ++$muji) { //根据总价与公鸡所花的钱:则母鸡最多有(100-$gongji*5)/3只 $xiaoji = 100 - $gongji - $muji; if($xiaoji % 3 != 0) {continue;} //考虑小鸡的价钱,则小鸡的数量只能被3整除才合理 if($gongji*5 + $muji*3 + $xiaoji/3 == 100) { echo "公鸡有 $gongji 只;母鸡有 $muji 只;小鸡有 $xiaoji 只;"; } $count++; //计算次数 } } echo "
次数:$count"; 输出的结果及计算次数: 原始思路: 公鸡有 0 只;母鸡有 25 只;小鸡有 75 只; 公鸡有 4 只;母鸡有 18 只;小鸡有 78 只; 公鸡有 8 只;母鸡有 11 只;小鸡有 81 只; 公鸡有 12 只;母鸡有 4 只;小鸡有 84 只; 次数:1030301 代码优化一: 公鸡有 0 只;母鸡有 25 只;小鸡有 75 只; 公鸡有 4 只;母鸡有 18 只;小鸡有 78 只; 公鸡有 8 只;母鸡有 11 只;小鸡有 81 只; 公鸡有 12 只;母鸡有 4 只;小鸡有 84 只; 次数:10201 代码优化二: 公鸡有 0 只;母鸡有 25 只;小鸡有 75 只; 公鸡有 4 只;母鸡有 18 只;小鸡有 78 只; 公鸡有 8 只;母鸡有 11 只;小鸡有 81 只; 公鸡有 12 只;母鸡有 4 只;小鸡有 84 只; 次数:714 代码优化三: 公鸡有 0 只;母鸡有 25 只;小鸡有 75 只; 公鸡有 4 只;母鸡有 18 只;小鸡有 78 只; 公鸡有 8 只;母鸡有 11 只;小鸡有 81 只; 公鸡有 12 只;母鸡有 4 只;小鸡有 84 只; 次数:364 代码优化四: 公鸡有 0 只;母鸡有 25 只;小鸡有 75 只; 公鸡有 4 只;母鸡有 18 只;小鸡有 78 只; 公鸡有 8 只;母鸡有 11 只;小鸡有 81 只; 公鸡有 12 只;母鸡有 4 只;小鸡有 84 只; 次数:121
http://www.bkjia.com/PHPjc/1071710.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1071710.htmlTechArticlePHP经典题:百钱百鸡问题(穷举算法) 百钱百鸡问题: 已知:公鸡5元一只,母鸡3元一只,小鸡一元3只 现用100元钱买了100只鸡,问:公鸡...
内容总结
以上是互联网集市为您收集整理的PHP经典题:百钱百鸡问题(穷举算法)_PHP教程全部内容,希望文章能够帮你解决PHP经典题:百钱百鸡问题(穷举算法)_PHP教程所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。