一个人初始能力值为1;如果每天学习,能够提高1%的能力值;不学习,能够降低1%的能力值。则,从秋季开学算起,秋季学期18周,然后放寒假6周;春季学期18周,然后放暑假10周;每周末及寒暑假不学习,则,第二年秋季,一个人的能力值会变成多少,并与一年内每天都学习的人能力值做比较。
(一年按52周算)
这道题可以使用循环来实现。首先我们需要定义变量,包括初始能力值、学习和不学习时的能力变化百分比、学期和假期的周数、以及一年的总周数。然后,我们可以按照如下步骤进行计算:
根据学习和不学习的能力变化百分比,计算每周结束时的能力值。
根据学期和假期的周数,计算一年结束时的能力值。
分别输出一年内每天学习和不学习时的能力值,并进行比较。
下面是代码实现:
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
每天学习的人比每天不学习的人能力值高
可以看到,每天学习的人的能力值比每天不学习的人的能力值高
每天学习: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)
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