问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

百鸡百钱问题(带解答过程,最好是算数方法)

发布网友 发布时间:2022-04-25 10:48

我来回答

3个回答

懂视网 时间:2022-04-07 09:50

什么是百钱百鸡?

我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?

01.jpg

翻译过来就是:

公鸡5元一只,母鸡3元一只,小鸡1元3只,100元买了100只鸡,问各多少只?

下面利用PHP分三种方法来解决这个问题:

第一种

假设:

如果公鸡1只,母鸡1只,小鸡1只,则总价为:......,不对。

如果公鸡1只,母鸡1只,小鸡2只,则总价为:......,不对。

如果公鸡1只,母鸡1只,小鸡3只,则总价为:......,不对。

...........................

如果公鸡1只,母鸡2只,小鸡1只,则总价为:......,不对。

如果公鸡1只,母鸡2只,小鸡2只,则总价为:......,不对。

如果公鸡1只,母鸡2只,小鸡3只,则总价为:......,不对。

.............................

如果公鸡100只,母鸡100只,小鸡100只,则总价为:......,不对。

这种编程思想叫做“穷举”,就是将所有可能的答案都罗列出来,然后挨个去验证。

代码如下:

<?php
$count = 0;
for($gongji = 0;$gongji <= 100;$gongji++){
for ($muji=0; $muji <= 100; $muji++) { 
for ($xiaoji=0; $xiaoji <= 100 ; $xiaoji++) { 
if($gongji + $muji + $xiaoji ==100 && $gongji*5 + 
$muji*3 + $xiaoji / 3 == 100){
 echo "<br>公鸡:$gongji,母鸡: $muji,小鸡: $xiaoji";
}
$count++;
}
}
}
echo "<br>".$count;

结果:

公鸡:0,母鸡: 25,小鸡: 75公鸡:4,母鸡: 18,小鸡: 78公鸡:8,母鸡: 11,小鸡: 81公鸡:12,母鸡: 4,小鸡: 841030301

第二种

代码如下

$count = 0;
for($gongji = 0;$gongji <= 100 / 5;$gongji++){
for ($muji=0; $muji <= 100 / 3; $muji++) { 
$xiaoji = 100 - $gongji - $muji;
if($gongji*5 + $muji*3 +$xiaoji / 3 == 100){
echo "<br>公鸡:$gongji,母鸡: $muji,小鸡: $xiaoji";
}
$count++;
}
}
echo "<br>".$count;

结果:

公鸡:0,母鸡: 25,小鸡: 75公鸡:4,母鸡: 18,小鸡: 78公鸡:8,母鸡: 11,小鸡: 81公鸡:12,母鸡: 4,小鸡: 84714

第三种

代码如下

$count = 0;
for($gongji = 0;$gongji <= 100 / 5;$gongji++){
for ($muji=0; $muji <= (100-$gongji*5) / 3; $muji++) { 
$xiaoji = 100 - $gongji - $muji;
if($gongji*5 + $muji*3 +$xiaoji / 3 == 100){
echo "<br>公鸡:$gongji,母鸡: $muji,小鸡: $xiaoji";
}
$count++;
}
}
echo "<br>".$count;

结果:

公鸡:0,母鸡: 25,小鸡: 75公鸡:4,母鸡: 18,小鸡: 78公鸡:8,母鸡: 11,小鸡: 81公鸡:12,母鸡: 4,小鸡: 84364

总结:

直接用三重for循环是很容易想到的,但是三重循环的复杂度太大了,所以应该想到减少循环。直接把小鸡用总的鸡数减去公鸡和母鸡,就能减少一层循环,这样就能减少运行的时间,提高代码效率。

热心网友 时间:2022-04-07 06:58

设买公鸡x只,买母鸡y只,买小鸡z只,那么根据已知条件列方程,有:

x+y+z=100…………(1)

5x+3y+z/3=100……(2)

(2)×3-(1),得

14x+8y=200

也就是7x+4y=100……(3)

在(3)式中4y和100都是4的倍数:

7x=100-4y=4(25-y)

因此7x也是4的倍数,7和4是互质的,也就是说x必须是4的倍数。

设x=4t

代入(3),得 y=25-7t

再将 x=4t 与 y=25-7t 代入(1),有:

z=75+3t

取t=1 t=2 t=3 就有

x=4 y=18 z=78

或 x=8 y=11 z=81

或 x=12 y=4 z=84

因为x、y、z都必须小于100且都是正整数,所以只有以上三组解符合题意。

解方程依据

1、移项变号:把方程中的某些项带着前面的符号从方程的一边移到另一边,并且加变减,减变加,乘变除以,除以变乘;

2、等式的基本性质:

(1)等式两边同时加(或减)同一个数或同一个代数式,所得的结果仍是等式。用字母表示为:若a=b,c为一个数或一个代数式。

(2)等式的两边同时乘或除以同一个不为0的数,所得的结果仍是等式。用字母表示为:若a=b,c为一个数或一个代数式(不为0)。

热心网友 时间:2022-04-07 08:16

设买公鸡x只,买母鸡y只,买小鸡z只,那么根据已知条件列方程,有:
x+y+z=100…………(1)
5x+3y+z/3=100……(2)
(2)×3-(1),得
14x+8y=200
也就是7x+4y=100……(3)
在(3)式中4y和100都是4的倍数:
7x=100-4y=4(25-y)
因此7x也是4的倍数,7和4是互质的,也就是说x必须是4的倍数。
设x=4t
代入(3),得 y=25-7t
再将 x=4t 与 y=25-7t 代入(1),有:
z=75+3t
取t=1 t=2 t=3 就有
x=4 y=18 z=78
或 x=8 y=11 z=81
或 x=12 y=4 z=84
因为x、y、z都必须小于100且都是正整数,所以只有以上三组解符合题意。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
备忘录在手机的哪里 刚性消费有哪些 中国经济快速增长的原因 什么是刚性消费 什么叫刚性增长 特别精辟的个性签名(非常经典的个性句子) 特别经典的个性签名(非常惊艳的个性句子) 文艺范十足的个性签名(温柔治愈的个性签名句子) wps文字怎么设置每页头和尾 27岁的女人需要补充哪些营养元素 百度云可以在群组之间进行文件分享么? 鸡排变成一坨还能吃吗? 有谁知道,火正新鸡排的鸡排好不好吃? 驭鲛记剧情分集介绍 名侦探柯南所有剧场版的剧情介绍 正新鸡排好可不可以多吃? 天敌电视剧扬阳最后死了吗 天敌里面的鼹鼠等级有多高 鸡排可以煮着吃吗 天敌电视剧 天敌在线观看 天敌电视剧在线观看 天敌剧情介绍全集qvod 综合布线中电信间是什么意思 鸡排变酸还能吃吗 综合布线中的CD是什么意思 爱迪生怎么跟温暖在一起的? 天敌 剧情。分析 正大鸡排可以放心的吃吗? 天敌的剧集评价 综合布线fd电话和网线都出现在一起吗 电视剧《天敌》中鼹鼠是什么职位? 现在正新鸡排的鸡排可以吃吗 天敌电视剧演员表 百度云怎么查找群 百钱买百鸡的流程图 编写程序,求解百钱买百鸡问题,母鸡3元一只,公鸡2元,小鸡0.5元... 100块钱买100只鸡的问题用程序流成图 百度云怎么建群 典型问题:百钱买百鸡的算法 c语言百钱买百鸡问题的流程图 关于百鸡问题的。 求百元买百鸡的完整问题,附答案。谢谢 百鸡问题(数学) 百鸡问题的答案是多少? 编程 百元百鸡问题 vb中如何算百元买百鸡问题详解? 百钱买百鸡问题,望高手多种方法解决,高高悬赏哦! c语言问题 百元买百鸡问题 请问如何用raptor解决百钱买百鸡的问题,最好有最终过程的程序框图... 算法设计问题 百钱买百鸡 C语言百元百鸡问题 用C语言编写百元买百鸡的程序,下面的代码哪错了? 关键词,文本聚类+,自动摘要+,文本情感的区别