【发布时间】:2018-02-07 04:20:13
【问题描述】:
我正在尝试从 Collatz 猜想中收集统计数据。目前,我的脚本获取从 2 到一个大的预设数字的每个数字的 Collatz 序列的长度,并将该长度保存到一个不断增长的数组中。每 100 次迭代,它会从 all 以前的数据中收集几个统计信息,并将它们保存到一个字典中,如下所示:
result = []
data = {}
for count, v in enumerate(range(2, 10000000), 1):
if count % 100 == 0:
result.append(len(collatz_concise(count))-1)
Max = round(max(result), 2)
Min = round(min(result), 2)
Mean = round(sum(result) / len(result))
Median = round(statistics.median(result))
Range = round(Max - Min, 2)
Trim_Mean = round(stats.trim_mean(result, 0.1), 2)
stat = np.array(result)
Q1 = round(np.percentile(stat, 25), 2)
Q3 = round(np.percentile(stat, 75), 2)
data[count] = [Min, Q1, Median, Mean, Trim_Mean, Q3, Max]
我希望每 100 次收集一次统计信息,但只收集列表的前 100 个值。我环顾四周,但找不到合适的答案。
温柔点,我对这个和 StackOverflow 也很陌生。
【问题讨论】:
-
请正确缩进您的示例代码。目前,
if count % 100 ==0:行之后的缩进看起来并不正确。重要的是要知道哪些情况会发生,哪些情况不会。 -
糟糕,很抱歉。修复它
标签: python python-3.x deque collatz periodic-task