1

我正在做我的第一个 otree 项目,我对超出简单调查内容的所有内容感到非常满意。

我有一个输入页面,玩家必须在其中决定他想投入多少点。他投资的点数应该会影响获得回报的概率。我的输入变量:

points = models.IntegerField(
                        label="How many points would you like to invest?",
                        choices=[
                             [0, "None"],
                             [1, "1 point"],
                             [2, "2 points"],
                             [3, "3 points"]])

我现在需要的是一个支付页面,一个随机生成器决定玩家是否赢了。概率分布应该如下:

  • 如果玩家投入 0,他有 (1+0)/10 的机会获胜
  • 如果玩家投入 1,他有 (1+1)/10 的机会获胜
  • 如果玩家投入2,他有(1+2)/10的机会获胜
  • 如果玩家投入3,他有(1+3)/10的机会获胜

在这个支付页面上,它应该说“你已经掷出数字 [x]。这意味着你已经 [赢了,输了]。”

我在网上唯一能找到的是这个与 python 相关的信息:https ://www.kite.com/python/answers/how-to-sample-a-random-number-from-a-probability-distribution-in- python但我没有让它与otree一起使用..

我必须把什么代码放在哪里才能让它工作?

4

1 回答 1

0

这是使用 Numpy 生成结果的代码片段。

import numpy as np

for invested in range(0, 4):
    # Use the provided formula to calculate win probability
    win_prob = (1 + invested) / 10
    # Loss probability = 1 - Win Probability
    loss_prob = 1 - win_prob
    # Get a random result
    result = np.random.choice(['Win', 'Loss'], p=[win_prob, loss_prob])
    # Show the result
    print(f'Win Probability: {win_prob}, Result: {result}')
于 2021-08-18T02:22:02.483 回答