gpt4 book ai didi

c# - 随机从状态 s1 到状态 s2 给定概率

转载 作者:太空宇宙 更新时间:2023-11-03 22:06:48 25 4
gpt4 key购买 nike

好的,假设我有一个具有“状态”属性的类 foo。我需要一个随机选择新状态的函数,但有以下限制:某些转换是不允许的,并且每个转换都有不同的发生概率。

enum PossibleStates { A, B, C, D }
PossibleStates currentState;

float[,] probabilities;

probabilities[s1, s2] 表示从状态 s1 到状态 s2 的概率。它也可以是 0.0f,表示 s1->s2 是不可能的,probabilities[s1, s2] 可以不同于 probabilities[s2, s1]。我需要这个方法尽可能通用,这样就可以有三到三百种可能的状态。
这不是作业,我只需要一个好的起点,因为我不知道从哪里开始:)

干杯

最佳答案

对于从状态 A 的转换,您计算一个(均匀分布的)随机数 r在 0 和 1 之间。你有转换的概率:p1 , p2 , ..., pn ,它们的总和显然必须为 1。现在,如果 r < p1 ,你遵循第一个转换;否则,如果r < p1 + p2 ,您遵循第二个转换,依此类推。

P.S.:为了产生所需的随机数,您会得到一个(单个)Random。对象,然后调用 NextDouble 方法:

Random rnd = new Random();
...
double r = rnd.NextDouble();

关于c# - 随机从状态 s1 到状态 s2 给定概率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8152538/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com