美文网首页日更成长营自学编程Python
自学Python:三个渔夫平分7筐鱼

自学Python:三个渔夫平分7筐鱼

作者: 小强聊成长 | 来源:发表于2022-01-26 11:43 被阅读0次

A、B、C三位渔夫出海打鱼,他们随船带了21只箩筐。当晚返航时,他们发现有7筐装满了鱼,还有7筐装了半筐鱼,另外7筐是空的。

由于他们没有秤,只好通过目测认为7个满筐鱼的重量是相等的,7个半筐鱼的重量是相等的。

那么问题来了,如何在不将鱼倒出来的前提下,怎样将鱼和筐平分为三份?

下面直接上代码:

########################

if __name__ == '__main__':

    print("分鱼的方案如下: ")

    count = 0

    a = [[0]*3 for i in range(3)]

    for i in range(4):  # 试第一个人满筐a[0][0]的值,满筐数不能>3

        a[0][0] = i

        j = i

        while j <= 7 - i and j <= 3:  # 试第二个人满筐a[1][0]的值,满筐数不能>3

            a[1][0] = j

            a[2][0] = 7 - j - a[0][0]

            j += 1

            if a[2][0] > 3:

                continue # 第三个人满筐数不能>3

            if a[2][0] < a[1][0]:

                break      # 要求后一个人分的满筐数大于等于前一个人,以排除重复情况

            for k in range(1, 6, 2):# 试半筐a[0][1]的值,半筐数为奇数

                a[0][1] = k

                for m in range(1, 7 - k, 2):  # 试半筐a[1][1]的值,半筐数为奇数

                    a[1][1] = m

                    a[2][1] = 7 - k - m

                    flag, n = True, 0  # 判断每个人分到的鱼是否为3.5筐,flag为满足题意的标记变量

                    while flag and n < 3:

                        if a[n][0] + a[n][1] < 7 and a[n][0] * 2 + a[n][1] == 7:

                            a[n][2] = 7 - a[n][0] - a[n][1] # 计算应得到的空筐数量

                        else:

                            flag = False  # 不符合题意则置标记为0

                        n += 1

                    if flag:

                        count += 1

                        print('方案:', count, ' 满框数 半框数 空框数')

                        for n in range(3):

                            print('渔夫', chr(65 + n), ':', a[n][0], a[n][1],a[n][2])

########################

执行结果如下:

分鱼的方案如下:

方案: 1  满框数 半框数 空框数

渔夫 A : 1 5 1

渔夫 B : 3 1 3

渔夫 C : 3 1 3

方案: 2  满框数 半框数 空框数

渔夫 A : 2 3 2

渔夫 B : 2 3 2

渔夫 C : 3 1 3

________________END______________

相关文章

  • 自学Python:三个渔夫平分7筐鱼

    A、B、C三位渔夫出海打鱼,他们随船带了21只箩筐。当晚返航时,他们发现有7筐装满了鱼,还有7筐装了半筐鱼,另外7...

  • 【哲理小故事】鱼蛙入网

    渔夫至岸,欲捕,蛙入水逃之。鱼思:“渔夫于岸,当捕蛙。”渔夫掷网,鱼、蛙皆得,入篓。鱼于篓中叹曰:“因蛙而入网,不...

  • 曾和他们一道夹鱼

    刚开始,他俩用网罩夹鱼,夹到多少鱼,我们三个人平分的。说夹鱼,是好听的一种说法,其实以偷鱼为主,那个网罩下到生产队...

  • 如何快速学会一门编程语言

    以前学过C,VB,之后也没有实践。后来买了Python,学了两三个小时,也没有深入。 有人问“想要自学Python...

  • 《渔夫与鱼》

    ——诗与远方 / 2022.11.17. 鱼喜欢渔夫, 渔夫只是在垂钓。 可是最终啊, 鱼儿...

  • 鱼与渔夫

    她本是大海中一条漂亮又顽皮的鱼,忍不住顽皮,随着浪头一下一下的跳跃,不小心被冲到岸上。太阳的炙热蒸发掉了她身上仅有...

  • 渔夫和鱼

    渔夫一直在钓一条鱼 一步一步 看着它上钩 给了它口袋里所有鱼饵 看它吃完 放掉 游走 想不通 爱上了这条鱼 鱼儿劝...

  • 渔夫和鱼

    在薄雾渐退的清晨 一条顽皮的小鱼偷偷溜出家门 它欢快的潜出水面 一双好奇的眼睛四处打探 猛然间一抬头 哇 那圆溜溜...

  • 渔夫和鱼🐠

    原创 本在江里游 大意失自由 都是善良人 把你钓上钩 如你能许诺 给他送套房 保准放了你 让你游大江 外孙女:鱼儿...

  • 渔夫的鱼

    涪江的晚风, 似乎比昔日添了几分寒意。 飘荡的木筏, 争流地穿过沉寂的岛屿。 岸边的行道树与夜灯还充满着生气, 木...

网友评论

    本文标题:自学Python:三个渔夫平分7筐鱼

    本文链接:https://www.haomeiwen.com/subject/hqoncrtx.html