精华内容
下载资源
问答
  • 百钱买百鸡:现有100钱,公鸡5文钱一只,母鸡3文钱一只,小鸡一文钱3只要求:公鸡、母鸡,小鸡都要有,把100文钱花完,买的的数量正好是100。问:一共能买多少只公鸡,多少只母鸡,多少只小鸡?穷举法:方案一:...

    202008102025.jpg

    百钱买百鸡:现有100钱,公鸡5文钱一只,母鸡3文钱一只,小鸡一文钱3只

    要求:公鸡、母鸡,小鸡都要有,把100文钱花完,买的鸡的数量正好是100。

    问:一共能买多少只公鸡,多少只母鸡,多少只小鸡?

    穷举法:

    方案一:

    思路:

    第一重循环公鸡从1只循环到100只

    第二重循环母鸡从1只循环到100只

    第三重循环小鸡从1只循环到100只

    然后进行判断:

    数量:公鸡+母鸡+小鸡 =100

    钱:公鸡*5+母鸡*3+小鸡 =100

    输出满足条件的情况

    代码如下:for cock in range(1,101): # 公鸡

    for hen in range(1,101): #母鸡

    for chick in range(1,101): #小鸡

    if cock * 5 + hen * 3 + chick == 100:

    if cock + hen + chick * 3 == 100:

    print("公鸡有%d只\t母鸡有%d只\t小鸡有%d只"%(cock,hen,chick * 3))

    输出:

    公鸡有4只 母鸡有18只 小鸡有78只

    公鸡有8只 母鸡有11只 小鸡有81只

    公鸡有12只 母鸡有4只 小鸡有84只

    虽然能求出结果,但仔细一想,用了三重循环,每重循环要执行100次,三重就是100*100*100,太耗时间了,能不能有一种更好的解决方法呢?

    方案二:

    思路:买了一只公鸡,花掉5钱,还剩下100 - 5 = 95 钱,买母鸡和小鸡的钱只有95钱,而不是100钱。再买一只母鸡,还剩下100- 5 - 3 = 92钱,那么买小鸡的钱只有92钱……所以每重循坏次数不再是固定的100,而是变化的。

    第一重 cock:100 / 5 = 20 次

    第二重 hen:(100 - cock) / 3次

    第三重:100 - cock -hen 次

    代码如下:for cock in range(5,101,5): # 公鸡

    for hen in range(3,101 - cock,3): #母鸡

    for chick in range(1,101 - cock - hen): #小鸡

    if cock // 5 + hen // 3 + chick * 3 == 100 and cock + hen + chick == 100:

    print("公鸡有%d只\t母鸡有%d只\t小鸡有%d只" % (cock // 5, hen // 3, chick * 3))

    下面做一个时间对比:import time

    start = time.clock()

    for cock in range(1,101): # 公鸡

    for hen in range(1,101): #母鸡

    for chick in range(1,101): #小鸡

    if cock * 5 + hen * 3 + chick == 100 and cock + hen + chick * 3 == 100:

    pass

    end = time.clock()

    time1 = end - start

    print("方案一所花时间",time1)

    start = time.clock()

    for cock in range(5,101,5): # 公鸡

    for hen in range(3,101 - cock,3): #母鸡

    for chick in range(1,101 - cock - hen): #小鸡

    if cock // 5 + hen // 3 + chick * 3 == 100 and cock + hen + chick == 100:

    pass

    end = time.clock()

    time2 = end - start

    print("方案二所花时间",time2)

    print("方案一所花时间是方案二的%d倍"%(time1 // time2))

    输出:

    方案一所花时间 0.32884016429388524

    方案二所花时间 0.0030011999201297046

    方案一所花时间是方案二的109倍

    经过多次测试,方案一所花时间差不多是方案二的100倍。

    这个小小的程序可以说明算法的重要姓,用不同的算法,时间复杂度是不一样的。在实现一个功能的基础上,还要兼顾效率的问题。

    当然这个题目还可以用求不定方程整数解的办法来解决,这个算法用时会更短。

    j_0002.gif

    本博客源码Github地址:

    请随手给个star,谢谢!

    展开全文
  • 百钱买百鸡关注公众号“轻松学编程”了解更多。现有100钱,公鸡5文钱一只,母鸡3文钱一只,小鸡一文钱3只要求:公鸡、母鸡,小鸡都要有,把100文钱花完,买的的数量正好是100。问:一共能买多少只公鸡,多少只母鸡...

    百钱买百鸡

    关注公众号“轻松学编程”了解更多。

    现有100钱,公鸡5文钱一只,母鸡3文钱一只,小鸡一文钱3只

    要求:公鸡、母鸡,小鸡都要有,把100文钱花完,买的鸡的数量正好是100。

    问:一共能买多少只公鸡,多少只母鸡,多少只小鸡?

    穷举法:

    方案一:

    思路:

    第一重循环公鸡从1只循环到100只

    第二重循环母鸡从1只循环到100只

    第三重循环小鸡从1只循环到100只

    然后进行判断:

    数量:公鸡+母鸡+小鸡 =100

    钱:公鸡5+母鸡3+小鸡 =100

    输出满足条件的情况

    代码如下:

    for cock in range(1,101): # 公鸡

    for hen in range(1,101): #母鸡

    for chick in range(1,101): #小鸡

    if cock * 5 + hen * 3 + chick == 100:

    if cock + hen + chick * 3 == 100:

    print("公鸡有%d只\t母鸡有%d只\t小鸡有%d只"%(cock,hen,chick * 3))

    输出:

    公鸡有4只 母鸡有18只 小鸡有78只

    公鸡有8只 母鸡有11只 小鸡有81只

    公鸡有12只 母鸡有4只 小鸡有84只

    虽然能求出结果,但仔细一想,用了三重循环,每重循环要执行100次,三重就是100100100,太耗时间了,能不能有一种更好的解决方法呢?

    方案二:

    思路:买了一只公鸡,花掉5钱,还剩下100 - 5 = 95 钱,买母鸡和小鸡的钱只有95钱,而不是100钱。再买一只母鸡,还剩下100- 5 - 3 = 92钱,那么买小鸡的钱只有92钱…所以每重循坏次数不再是固定的100,而是变化的。

    第一重 cock:100 / 5 = 20 次

    第二重 hen:(100 - cock) / 3次

    第三重:100 - cock -hen 次

    代码如下:

    for cock in range(5,101,5): # 公鸡

    for hen in range(3,101 - cock,3): #母鸡

    for chick in range(1,101 - cock - hen): #小鸡

    if cock // 5 + hen // 3 + chick * 3 == 100 and cock + hen + chick == 100:

    print("公鸡有%d只\t母鸡有%d只\t小鸡有%d只" % (cock // 5, hen // 3, chick * 3))

    下面做一个时间对比:

    import time

    start = time.clock()

    for cock in range(1,101): # 公鸡

    for hen in range(1,101): #母鸡

    for chick in range(1,101): #小鸡

    if cock * 5 + hen * 3 + chick == 100 and cock + hen + chick * 3 == 100:

    pass

    end = time.clock()

    time1 = end - start

    print("方案一所花时间",time1)

    start = time.clock()

    for cock in range(5,101,5): # 公鸡

    for hen in range(3,101 - cock,3): #母鸡

    for chick in range(1,101 - cock - hen): #小鸡

    if cock // 5 + hen // 3 + chick * 3 == 100 and cock + hen + chick == 100:

    pass

    end = time.clock()

    time2 = end - start

    print("方案二所花时间",time2)

    print("方案一所花时间是方案二的%d倍"%(time1 // time2))

    输出:

    方案一所花时间 0.32884016429388524

    方案二所花时间 0.0030011999201297046

    方案一所花时间是方案二的109倍

    经过多次测试,方案一所花时间差不多是方案二的100倍。

    这个小小的程序可以说明算法的重要性,用不同的算法,时间复杂度是不一样的。在实现一个功能的基础上,还要兼顾效率的问题。

    当然这个题目还可以用求不定方程整数解的办法来解决,这个算法用时会更短。

    后记

    【后记】为了让大家能够轻松学编程,我创建了一个公众号【轻松学编程】,里面有让你快速学会编程的文章,当然也有一些干货提高你的编程水平,也有一些编程项目适合做一些课程设计等课题。

    也可加我微信【1257309054】,拉你进群,大家一起交流学习。

    如果文章对您有帮助,请我喝杯咖啡吧!

    公众号

    20200317124808234.jpg

    watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xtX2lzX2Rj,size_16,color_FFFFFF,t_70

    关注我,我们一起成长~~

    展开全文
  • 百钱买百鸡”是一个很有历史的问题了,大意就是:小鸡半文一只,母鸡一文一只,公鸡二文一只,现有一百文钱,刚好买了一百只,请问小鸡、母鸡与公鸡各有多少只?如果假设小鸡、母鸡和公鸡各有a,b,c,那么同时...

    “百钱买百鸡”是一个很有历史的问题了,大意就是:小鸡半文一只,母鸡一文一只,公鸡二文一只,现有一百文钱,刚好买了一百只鸡,请问小鸡、母鸡与公鸡各有多少只?

    如果假设小鸡、母鸡和公鸡各有a,b,c,那么同时满足以下两个条件的均可以符合题意:

    a + b +c =100

    0.5a + 1b + 2*c = 100

    显然不止一组解,可以用Python进行穷举,代码如下:

    for i in range(1, 101):

    for j in range(1, 101-i):

    for m in range(1, 101-i -j):

    if i * 0.5+j*1 + m *2 == 100 and i + j + m == 100:

    print("chicken(s):{}, hen(s):{}, rooster(s):{}.".format(i, j, m))

    测试运行的结果是:

    chicken(s):2, hen(s):97, rooster(s):1.

    chicken(s):4, hen(s):94, rooster(s):2.

    chicken(s):6, hen(s):91, rooster(s):3.

    chicken(s):8, hen(s):88, rooster(s):4.

    chicken(s):10, hen(s):85, rooster(s):5.

    chicken(s):12, hen(s):82, rooster(s):6.

    chicken(s):14, hen(s):79, rooster(s):7.

    chicken(s):16, hen(s):76, rooster(s):8.

    chicken(s):18, hen(s):73, rooster(s):9.

    chicken(s):20, hen(s):70, rooster(s):10.

    chicken(s):22, hen(s):67, rooster(s):11.

    chicken(s):24, hen(s):64, rooster(s):12.

    chicken(s):26, hen(s):61, rooster(s):13.

    chicken(s):28, hen(s):58, rooster(s):14.

    chicken(s):30, hen(s):55, rooster(s):15.

    chicken(s):32, hen(s):52, rooster(s):16.

    chicken(s):34, hen(s):49, rooster(s):17.

    chicken(s):36, hen(s):46, rooster(s):18.

    chicken(s):38, hen(s):43, rooster(s):19.

    chicken(s):40, hen(s):40, rooster(s):20.

    chicken(s):42, hen(s):37, rooster(s):21.

    chicken(s):44, hen(s):34, rooster(s):22.

    chicken(s):46, hen(s):31, rooster(s):23.

    chicken(s):48, hen(s):28, rooster(s):24.

    chicken(s):50, hen(s):25, rooster(s):25.

    chicken(s):52, hen(s):22, rooster(s):26.

    chicken(s):54, hen(s):19, rooster(s):27.

    chicken(s):56, hen(s):16, rooster(s):28.

    chicken(s):58, hen(s):13, rooster(s):29.

    chicken(s):60, hen(s):10, rooster(s):30.

    chicken(s):62, hen(s):7, rooster(s):31.

    chicken(s):64, hen(s):4, rooster(s):32.

    chicken(s):66, hen(s):1, rooster(s):33.

    总的来说,这是一个中小学生都适宜的好问题情境,对于小学生可以用来培养数学思维,比如小鸡不可能是单数,比如小鸡与公鸡的平均价格应该是一文一只。而对于中学生而言则可以用来锻炼程序思维。

    展开全文
  • 2012-4-12 22:53'###############################################################################' 文 件 名: 百钱买百鸡.bas' 描 述: 翁一,值钱五,母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、...

    2012-4-12 22:53

    '###############################################################################

    ' 文 件 名: 百钱买百鸡.bas

    ' 描 述: 鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?

    '

    ' 创 建 者:

    ' 创建日期: 04-12-2012

    ' 备 注: 公鸡、母鸡和小鸡都要有

    '

    '################################维护历史#######################################

    ' <日期> <修改者>

    '

    '

    ' <修改内容>

    '

    '###############################################################################

    Print !"公鸡\t母鸡\t小鸡"

    '公鸡5元一只,最多只能买19只,要留下钱买母鸡与小鸡

    For x As Integer = 1 To 19

    '母鸡3元一只,最多只能买30只

    For y As Integer = 1 To 30

    '小鸡1元3只,最多只能买96只

    For z As Integer = 3 To 96 Step 3

    '是否100只鸡,先计算加法,增加效率。

    If x + y + z = 100 Then

    '是否共花100元

    If x * 5 + y * 3 + z / 3 = 100 Then

    '打印结果

    Print Str(x) + !"\t" + Str(y) + !"\t" + Str(z)

    EndIf

    EndIf

    Next

    Next

    Next

    Sleep

    展开全文
  • python百钱买百鸡

    2021-01-01 22:48:08
    百钱买百鸡 代码: 运行结果:
  • 双循环
  • Python 百钱买百鸡

    千次阅读 2020-04-01 22:15:49
    某人有100元钱,100只。 公鸡5元一只,母鸡3元一只,小鸡1元三只。 问: 可以公鸡、母鸡、小鸡各多少只。 二、问题分析 使用穷举法,把每一种可能都试一遍,得到最后正确的结果。 若公鸡为x只,母鸡为y只,...
  • 问:凡百钱买鸡百只,问鸡翁、母、鶵各几何?解:x+y+z=100;5x+3y+z/3=100代码实现:1、使用while嵌套循环。注意变量初值设置,以及循环条件。#coding=utf-8chickNum=[['公鸡','母鸡','小鸡']]#公鸡5元一只,数量x不...
  • python 百钱买百鸡问题

    千次阅读 2020-04-26 19:42:13
    一百只。公鸡 5 ???? 一只 ,母鸡 3 ???? 一只,小鸡 1 ???? 三只。 问 可以 公鸡、母鸡、小鸡 各多少只 ( 不考虑 0 )。 # x 是公鸡数 y是母鸡和小鸡的总数 z是小鸡的数量 for x in range(1,20): for y in...
  • 张丘建在《算经》一书中曾提出过著名的“百钱买百鸡”问题,该问题叙述如下:翁一,值钱五;母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何?
  • 公鸡5块钱一只,母鸡3块钱一只,小鸡一块钱3只,用100块钱一百只,问公鸡,母鸡,小鸡各要多少只?今天看到这题很简单 ,但是随手写出来后发现不是最优的??php实现//============百钱百鸡===========//公鸡5元...
  • 百钱百鸡问题:某人有100元钱,100只。公鸡5元只,母鸡3元一只,小鸡1元三只。问:可以公鸡、母鸡、小鸡各多少只?思路分析1.通过双层for循环实现九九乘法表。2.使用穷举法,把每一种可能都试一通,得到最后...
  • Python用来解决日常生活中的小问题很容的。# 植树问题total = 1age = 1while total image.png# 有若干只兔同在一个笼子里,从上面数,有35个头,从下面数,有94只脚。问笼中各有多少只和兔?# 穷举法# 列表推导...
  • 百钱买鸡问题

    2019-12-25 09:53:04
    百钱买鸡 第一种方法: import random while True: x = random.randint(0,20) y = random.randint(0,33) z = random.randint(0,100) if 5 * x + 3 * y + z / 3 == 100 and x + y + z == 100: print("公...
  • 百钱买鸡鸣

    2018-03-10 07:29:00
    用100文钱一百只,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要多少只刚好凑足100文钱。 不定方程--> x+y+z=100, 5x+3y+z/3=100, 5x<100 => 0<x<20, 同理 0<y<33,那...
  • 百钱买鸡

    2018-01-05 16:29:47
    #include int main() { int i, j, k; printf("所有可能的解如下:\n"); for( i=0; i ; i++ ) for( j=0; j ; j++ ) for( k=0; k ; k++ ) {
  • Python解决百钱买百鸡

    2021-07-24 09:34:26
    Python解决百钱买百鸡 穷举法的经典案列 穷举法:穷尽所有的可能性,然后设置条件找到问题的解。 题目:鸡翁一值钱5,鸡母一值钱3,鸡雏三值钱1,用百钱买百鸡,问鸡翁、鸡母、鸡雏几何 # 一百钱全部买鸡翁可买20只 ...
  • Python实现百钱买百鸡

    千次阅读 多人点赞 2021-02-16 14:18:46
    百钱买百鸡,问翁、母、鸡雏各几何? 转化为数学语言,也就是我们要找到三个不大于100的非负整数x,y,z,满足x+y+z=100,并且5x+3y+z/3=100. 二、普通解法 很容易想到使用嵌套的for循环来搜索合适的三个变量。...
  • Python百钱百鸡问题

    万次阅读 多人点赞 2019-05-28 10:53:58
    百钱买百鸡,问翁、母、鸡雏各几何? 译文:公鸡一只5元,母鸡一只3元,小鸡3只1元。如何用100元买100只。其中公鸡,母鸡,小鸡的数量各是多少 方法一:穷举法 // 穷举法 // 分析:公鸡最多买:20只,母鸡最多...
  • 0015.百钱买鸡_

    2017-09-05 18:39:00
    --百钱买鸡-- 和我之前学PHP时候的题目一样 题目:公鸡5文钱一只,母鸡3文钱一直,小鸡3只一文钱,用100文钱买100只鸡,其中公鸡,母鸡,小鸡必须要有,文公鸡,母鸡,小鸡要买多少只正好凑足100文钱? x+y+z=100 5x+3y+z/3...
  • python实现百钱买百鸡

    万次阅读 多人点赞 2019-07-19 11:38:36
    百钱买百鸡的问题算是一套非常经典的不定方程的问题,题目很简单: 公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱, 用100文钱买一百只,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100...
  • python解决百钱买百鸡

    万次阅读 多人点赞 2018-08-27 21:33:34
    百钱买百鸡:现有100钱,公鸡5文钱一只,母鸡3文钱一只,小鸡一文钱3只 要求:公鸡、母鸡,小鸡都要有,把100文钱花完,买的的数量正好是100。 问:一共能买多少只公鸡,多少只母鸡,多少只小鸡? 穷举法: ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 599
精华内容 239
关键字:

python百钱买鸡

python 订阅