微生物繁殖,古堡算式

文章目录

微生物增殖

题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

假设有两种微生物 X 和 Y。

X 出生后每隔 3 分钟分裂一次(数目加倍),Y 出生后每隔 2 分钟分裂一次(数目加倍)。

一个新出生的 X,半分钟之后吃掉 1 个 Y,并且,从此开始,每隔 1 分钟吃 1 个 Y。

现在已知有新出生的 X=10, Y=90,求 60 分钟后Y的数目。

运行限制
最大运行时间:1s
最大运行内存: 128M

分析

微生物繁殖,古堡算式

  • 通过画图,我们可以得知每六格为1次循环
  • 如果时间能够整除3,即X增殖:X = X * 2
  • 如果时间能够整除2,即X增殖:Y = Y * 2
  • 如果时间能够整除0.5且不是整数,即Y被吃掉:Y -=X
  • 本来如果用循环来做,模拟起来应该不难,但是python循环的步长好像不能为浮点数,所以这里我们就把60个1分钟变成120个0.5分钟。如果这样变化的话, 所有时间发生相应变化(即扩大)
  • 如果时间能够整除6,即X增殖:X = X * 2
  • 如果时间能够整除4,即X增殖:Y = Y * 2
  • 如果时间整除2且余1,即Y被吃掉:Y -=X

运行代码

X = 10
Y = 90
for i in range(1,121):
    if i % 2 == 1:
        Y -= X
    if i % 6 == 0:
        X *= 2
    if i % 4 == 0:
        Y *= 2
print(Y)

通过截图

答案为94371840
微生物繁殖,古堡算式

保护环境

微生物繁殖,古堡算式

Y仅仅只差了1,就导致一个物种是否可以继续存活,说不定,有时我们破坏的就是使一个物种灭绝的最后一根稻草

古堡算式

题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:

ABCDE * ? = EDCBA
他对华生说:“ABCDE 应该代表不同的数字,问号也代表某个数字!”

华生:“我猜也是!”

于是,两人沉默了好久,还是没有算出合适的结果来。

请你利用计算机的优势,找到破解的答案。

把 ABCDE 所代表的数字写出来。

运行限制
最大运行时间:1s
最大运行内存: 128M

分析

  • 直接使用排列组合函数,由于是填空题,所以也可以不用去剪枝,直接用全排列5个数,然后再判断即可。

运行代码

from itertools import permutations

nums = [i for i in range(10)] # 0-9

for i in permutations(nums,5): # i是一个元组
    ABCDE = "".join(str(j) for j in i)
    EDCBA = ""
    for j in range(4,-1,-1): # 反向遍历ABCDE
        EDCBA+=ABCDE[j]

    for z in range(1,10): # ?的遍历
        if int(ABCDE) * z == int(EDCBA):
            print(int(ABCDE))

通过截图

答案为21978
微生物繁殖,古堡算式

如有错误,敬请指正,欢迎交流,谢谢♪(・ω・)ノ

上一篇:datagrid中给字段添加链接


下一篇:asd