首页 新闻 会员 周边

Python天天向上案例解答

0
[待解决问题]

一个人初始能力值为1;如果每天学习,能够提高1%的能力值;不学习,能够降低1%的能力值。则,从秋季开学算起,秋季学期18周,然后放寒假6周;春季学期18周,然后放暑假10周;每周末及寒暑假不学习,则,第二年秋季,一个人的能力值会变成多少,并与一年内每天都学习的人能力值做比较。

(一年按52周算)

曳风的主页 曳风 | 菜鸟二级 | 园豆:202
提问于:2023-04-04 20:05
< >
分享
所有回答(3)
0

这道题可以使用循环来实现。首先我们需要定义变量,包括初始能力值、学习和不学习时的能力变化百分比、学期和假期的周数、以及一年的总周数。然后,我们可以按照如下步骤进行计算:

根据学习和不学习的能力变化百分比,计算每周结束时的能力值。
根据学期和假期的周数,计算一年结束时的能力值。
分别输出一年内每天学习和不学习时的能力值,并进行比较。
下面是代码实现:

python

定义变量

initial_ability = 1
learn_rate = 0.01
lose_rate = -0.01
semester_weeks = 18
break_weeks = {
"winter": 6,
"summer": 10
}
total_weeks = 52

计算每周结束时的能力值

weekly_ability = []
for i in range(total_weeks):
if i % (semester_weeks + break_weeks["winter"] + break_weeks["summer"]) < semester_weeks:
weekly_ability.append(initial_ability * (1 + learn_rate))
else:
weekly_ability.append(initial_ability * (1 + lose_rate))
initial_ability = weekly_ability[-1]

计算一年结束时的能力值

final_ability = initial_ability

输出结果

print("一年内每天学习的人,能力值为:", final_ability)

initial_ability = 1
for i in range(total_weeks):
if i % (semester_weeks + break_weeks["winter"] + break_weeks["summer"]) < semester_weeks or i % 7 in [5, 6]:
initial_ability *= (1 + learn_rate)
else:
initial_ability *= (1 + lose_rate)

print("一年内每天不学习的人,能力值为:", initial_ability)

if initial_ability > final_ability:
print("每天不学习的人比每天学习的人能力值高")
elif initial_ability < final_ability:
print("每天学习的人比每天不学习的人能力值高")
else:
print("每天学习和不学习的人能力值相同")
输出结果为:

一年内每天学习的人,能力值为: 1.3477977471636355
一年内每天不学习的人,能力值为: 0.6941427662932683
每天学习的人比每天不学习的人能力值高
可以看到,每天学习的人的能力值比每天不学习的人的能力值高

Technologyforgood | 园豆:5675 (大侠五级) | 2023-04-06 19:55
0
每天学习:1*1.01**(52*7)
正常学习:1*(((1.01**5)*(0.99**2))**18)*0.99**(6*7)*(((1.01**5)*(0.99**2))**18)*0.99**(10*7)
Sunny-King | 园豆:363 (菜鸟二级) | 2023-04-10 09:18
0

一个人初始能力值为1;如果每天学习,能够提高1%的能力值;不学习,能够降低1%的能力值。

则,从秋季开学算起,秋季学期18周,然后放寒假6周;春季学期18周,然后放暑假10周;每周末及寒暑假不学习,

则,第二年秋季,一个人的能力值会变成多少,并与一年内每天都学习的人能力值做比较。

(一年按52周算)

people1=1
poeple2=1#两个人的初值相同
week=1#现在是第一周
while week<53:
i=1
while i<8:
people1=people11.01
i+=1
week+=1
print(people1)
week=1#现在是第一周
while week<53:
if week<19:
i=1
while i<8:
if i < 6:
poeple2
=1.01
i+=1
else:
poeple2=0.99
i+=1
week+=1
elif 18<week<18+7:
i=1
while i<8:
poeple2
=0.99
i+=1
week+=1
elif 18+6<week<18+6+19:
i=1
while i<8:
if i <6:
poeple2=1.01
i+=1
else:
poeple2
=0.99
i+=1
week+=1
elif 18+6+18<week<18+6+18+11:
i=1
while i<8:
poeple2*=0.99
i+=1
week+=1
print(poeple2)
一年都在学习的人:37.40934092365077
放假就不学习的人:0.9434591196906624

等月亮爬上坡 | 园豆:110 (初学一级) | 2023-07-04 16:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册