1b1n1m 发表于 2022-9-11 21:32:42

这个for循环该怎么写?

'''本代码试图建模以下问题:
洗衣服的时候,在洗涤剂和漂洗总水量一定的情况下,漂洗的次数和最后一次漂洗后
衣服中残留的洗涤剂浓度之间的关系。
每次漂洗结束后脱水,衣服里面总会残留固定的水分,在其中溶解有洗涤剂,即固定
量的一定浓度的洗涤剂溶液
每次漂洗实际上是用水将残留在衣服里的洗涤剂溶液稀释,然后排出多余的溶液
这个过程中,上一次漂洗残留的洗涤剂溶液被稀释以后又残留固定量的溶液
但是水的总量一定,漂洗次数不能无限叠加。
希望能找到一条曲线描述漂洗次数与残留浓度之间的关系'''
import matplotlib.pyplot as plt
import numpy as np
'''目前卡在如何利用循环语句自动计算在漂洗指定次数以后洗衣粉的浓度。'''
Water = 100
x = np.linspace(1, 5,4)#漂洗次数

left = 0.1#残留量
#洗涤剂的总量
powder = 10
t_water = Water/(x+1)#每次漂洗的水量
浓度 = powder/t_water*left#第一次漂洗结束后残留浓度
# print("浓度:",浓度,end="")
#该循环体想要实现x洗涤多少次,循环就循环多少次。这个for循环不知道怎么写了
for i in range(x):
    浓度1 = (浓度/t_water)*left
    浓度 = 浓度1
print("浓度=",浓度1,end="")
plt.plot(浓度,x)
plt.show()

想对这个问题进行建模

阿奇_o 发表于 2022-9-12 01:33:37

本帖最后由 阿奇_o 于 2022-9-12 02:59 编辑

不知道是否理解正确了。。你看着办吧

from matplotlib import pyplot as plt

# 默认总水量w=100,洗涤剂p=10,稀释度dilution=0.1
def cal(n, w=100, p=10, dilution=0.1):
    v = w / n   # 均分水量
    for i in range(1, n+1):
      res = (p/v) * dilution# 被稀释后的 残留浓度
      p = res * v   # 残留量
    # return n, round(res, 6), round(p,4)
    return round(res, 6)

y =
x = range(1, 51)

plt.plot(x, y, )

plt.show()

1b1n1m 发表于 2022-9-12 08:03:38

阿奇_o 发表于 2022-9-12 01:33
不知道是否理解正确了。。你看着办吧

昨天脑子有点转不过弯来,非常感谢您的回答与帮助!
页: [1]
查看完整版本: 这个for循环该怎么写?