【问题标题】:random and certainty in python? [closed]python中的随机性和确定性? [关闭]
【发布时间】:2015-11-17 07:41:22
【问题描述】:

我有一个简单的脚本,比如说打印一个字符串。现在我想运行这个脚本 100 次,我想确保字符串至少打印 1 次,但不超过 3 次。从统计上看,我希望这个字符串打印总运行时间的 1% ~ 3%。

我可以知道如何在 Python 中实现吗?

非常感谢!

【问题讨论】:

  • 这是我称之为“gimme-teh-codez”问题的一个很好的例子。该问题说明了程序应该做什么,但没有显示用户为自己开发程序所做的任何努力。只是“嘿,我想要它这样做,现在给我密码”。有时,如果问题很有趣,这会起作用;但大多数时候,它会被否决并关闭,就像这个一样。很明显你会说英语,所以在你再次发帖之前请去阅读how to ask a good question

标签: python random


【解决方案1】:
from random import randint
from pickle import dump, load
from os.path import isfile

if isfile('state.bin'):
    with open('state.bin', 'rb') as fh:
        state = load(fh)
else:
    state = {'counter' : 0, 'iterations' : 1}

if state['counter'] == 0 and state['iterations'] == 100:
    print('a string*')
else:
    if randint(0, 100) < 3 and state['counter'] < 3:
        print('a string*')
        state['counter'] += 1
state['iterations'] += 1

with open('state.bin', 'wb') as fh:
    dump(state, fh)

现在运行这个脚本 100 次,从统计上看,这应该只打印 a string 1-3% 的时间。它还会跟踪您已经完成了多少次迭代,以及数量是小于 1 还是大于 3,并会采取相应的行动。

【讨论】:

  • 可以打印3次以上。它可以打印0次。要求是“至少1次,但不超过3次”。
  • @MarkTolonen 是的,我会努力解决这个问题:)
  • @MarkTolonen 已修复。我必须承认,我对一个模糊问题的愚蠢回答可能没有我想象的那么有趣。我希望这会更好。
  • @Torxed,我正在考虑相同的解决方案,但正如马克所说,它可能会打印 0 次,这是不可接受的,尽管 5 次对我来说是好的接受。有没有可能至少运行一次?没有可以保存的外部文件,否则我将它用作计数器。
  • @CoeusWang 我添加了一个外部“状态”文件,用于跟踪您是否在上次迭代中打印了 0 次,或者您尝试打印超过 3 次。
猜你喜欢
  • 2016-12-29
  • 1970-01-01
  • 1970-01-01
  • 2019-09-19
  • 2020-01-15
  • 1970-01-01
  • 2021-01-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多