2024-06-17 11:15:21 发布
网友
我试图模拟单个n骰子,其中每个骰子都可能有f面。例如,如果𝑓=[2,5,7],然后滚动三个有2、5和7个面的骰子。谢谢大家!
您可以在没有显式循环的情况下执行此操作。在本例中,我将使用numpy 1.17中引入的“新”numpy随机API。在新的API中,使用生成器的integers方法生成随机整数;它对应于旧的randint方法:
integers
randint
In [22]: rng = np.random.default_rng() In [23]: f = np.array([2, 5, 7]) In [24]: rng.integers(1, f + 1) Out[24]: array([2, 4, 6])
要在一次调用中重复进程n次,请使用size参数:
n
size
In [30]: n = 8 In [31]: rng.integers(1, f + 1, size=(n, 3)) Out[31]: array([[1, 3, 4], [1, 1, 5], [1, 3, 1], [2, 3, 1], [2, 2, 4], [2, 4, 2], [1, 1, 3], [2, 1, 7]])
我用它来处理这个问题:
f=[3,4,5] outcomes= [] for i in f: out = 1 + np.random.randint(i, size = len(f) ) outcomes.append(out)
谢谢大家!
您可以在没有显式循环的情况下执行此操作。在本例中,我将使用numpy 1.17中引入的“新”numpy随机API。在新的API中,使用生成器的
integers
方法生成随机整数;它对应于旧的randint
方法:要在一次调用中重复进程
n
次,请使用size
参数:我用它来处理这个问题:
谢谢大家!
相关问题 更多 >
编程相关推荐