Python-优化数学方程式以获得简单的猜测游戏分数计算

时间:2019-01-20 15:20:33

标签: python math mathematical-optimization equation

我正在尝试创建类似于我编写的凌乱代码块的方程式,以根据玩家在猜谜游戏中的猜测量计算分数。

玩家有10次尝试。对于每一次不成功的尝试,得分乘数都会减少x。 因此,尝试次数越多,得分所受的影响就越小。

我尝试计算包含尝试次数的猜测列表的长度,但这与我想要的相反。尝试使用的次数越多,得分越高。

我已经尝试过使用len(guesses [::-1]),但这确实是一样的...显然仍然需要10次尝试。

任何想法如何做到这一点?我怀疑有一个for循环,但是我无法做出任何接近工作的事情。

基本上,我要搜索的是方程式或数学表达式,而不是列表,字典等的实现方式。

例如线性的东西:

int

我当前凌乱且未优化的代码块:

Prize = bet * (reversedGuesses * 
1.25) 
# so that if it took 1 try = 12.5
# and if it took 10 tries = 1.25

上面的方法显然有效,但是我确信可以更有效地完成它...

我是python的新手,所以解释也很棒!

谢谢!

1 个答案:

答案 0 :(得分:1)

  

我已经尝试过使用len(guesses [::-1]),但这确实是一样的...显然仍然需要10次尝试。

这种方法的问题是,如果您反转列表,并询问列表有多长,它将与原始列表一样长。

  

基本上,我要搜索的是方程式或数学表达式,而不是列表,字典等的实现方式。

您可以除以他们使用的猜测数。像这样:

Prize = bet / len(guesses)

对于每个错误的猜测,您都可以将奖赏减少10%:

Prize = bet * ((1 - 0.10) ** len(guesses))

您可以在10次错误的猜想之后将奖金降低到0,然后在两次之间每次降低相同的金额:

guesses_left = max(0, 10 - len(guesses))
Prize = bet * guesses_left
  

我是python的新手,所以解释也很棒!

如果您乘以列表的长度,则奖赏会随着他们玩的时间越长而越大,这与您要寻找的相反。