好的,我会尽可能详细地解释。
假设用户可以选择一组“选项”。每次他选择时,他会得到4个不同的选项。在这4个“插槽”中可能出现更多选项。每个选项都有一定的已知概率。并非所有选项出现的概率相等,有些选项需要先前选择了其他选项 - 在一个复杂的相互依赖树中(这一点我已经定义好了)。
当用户选择其中一个选项时,他将被呈现另外4个选项的选择。选项池再次定义,并且可能取决于用户先前选择的内容。
在所有可能出现的“选项”中,有一些是特殊的,称之为关键选项。
程序启动时,用户会看到第一组4个选项。对于这4个选项中的每一个,程序需要计算用户在N次选择期间“实现”所有关键选项的总概率。
例如,如果总共有4个选项,则实现其中任何一个的概率恰好为1,因为它们全部在开始时就出现了。
如果有人能告诉我应该从哪个逻辑开始,我将非常感激。我正在考虑计算所有可能的选择序列,并计算在N步内选择关键选项的那些序列的数量,但问题是它们出现的概率不是均匀的,并且选项池会随着用户的选择和积累而改变。
我很难将选项的明确定义的概率和依赖关系实现为能够给出合理总概率的算法。因此,用户每次都知道哪个选项可以使他最终获得关键选项。
有什么想法吗?
编辑: 以下是一个例子:
假设选项池中有7个选项。option1, ..., option7 option7需要option6;option6需要option4和option5; 选项1到5不需要任何东西,可以立即出现,分别具有option1.p,...,option5.p的概率; 关键选项是option7; 用户从1-5中随机(但带权重地)获得4个选项,程序需要说类似于: “如果你选择(第一个),你有##%的概率在最多N次尝试中获得option7。”其他3个选项也是如此。
自然地,对于一些较低的N值,获得option7是不可能的,而对于一些较大的N值,则是肯定的。N可以选择,但是是固定的。
编辑:所以,这里的重点不是用户随机选择。重点是 - 程序建议选择哪个选项,以最大化在N步之后,用户将被提供所有关键选项的概率。
对于上面的例子,假设我们选择 N = 4。那么程序需要告诉我们,在出现的前4个选项中(包括 option1-5 的任意4个),选择哪一个会获得获得 option7 的最佳机会。由于要获得 option7,需要 option6,而为了获得 option6,需要 option4 和 option5,因此很明显你必须在第一组选择中选择 option4 或 option5 中的一个。当然,其中一个肯定会出现。
假设我们在第一次选择中得到了 {option3,option5,option2,option4}。然后程序会说:
如果你选择 option3,在4步内你永远不会获得 option7。p = 0; 如果你选择 option5,你可能会获得 option7,p = ....; ... option2,p = 0; ... option4,p = ...;
无论我们选择什么,对于接下来的4个选项,概率 p 都会重新计算。很明显,如果我们选择了 option3 或 option2,每个进一步的选择都有恰好 0 的概率使我们到达 option7。但是对于 option4 和 option5,p > 0。
现在清楚了吗?我不知道如何获得这些概率 p。
假设用户可以选择一组“选项”。每次他选择时,他会得到4个不同的选项。在这4个“插槽”中可能出现更多选项。每个选项都有一定的已知概率。并非所有选项出现的概率相等,有些选项需要先前选择了其他选项 - 在一个复杂的相互依赖树中(这一点我已经定义好了)。
当用户选择其中一个选项时,他将被呈现另外4个选项的选择。选项池再次定义,并且可能取决于用户先前选择的内容。
在所有可能出现的“选项”中,有一些是特殊的,称之为关键选项。
程序启动时,用户会看到第一组4个选项。对于这4个选项中的每一个,程序需要计算用户在N次选择期间“实现”所有关键选项的总概率。
例如,如果总共有4个选项,则实现其中任何一个的概率恰好为1,因为它们全部在开始时就出现了。
如果有人能告诉我应该从哪个逻辑开始,我将非常感激。我正在考虑计算所有可能的选择序列,并计算在N步内选择关键选项的那些序列的数量,但问题是它们出现的概率不是均匀的,并且选项池会随着用户的选择和积累而改变。
我很难将选项的明确定义的概率和依赖关系实现为能够给出合理总概率的算法。因此,用户每次都知道哪个选项可以使他最终获得关键选项。
有什么想法吗?
编辑: 以下是一个例子:
假设选项池中有7个选项。option1, ..., option7 option7需要option6;option6需要option4和option5; 选项1到5不需要任何东西,可以立即出现,分别具有option1.p,...,option5.p的概率; 关键选项是option7; 用户从1-5中随机(但带权重地)获得4个选项,程序需要说类似于: “如果你选择(第一个),你有##%的概率在最多N次尝试中获得option7。”其他3个选项也是如此。
自然地,对于一些较低的N值,获得option7是不可能的,而对于一些较大的N值,则是肯定的。N可以选择,但是是固定的。
编辑:所以,这里的重点不是用户随机选择。重点是 - 程序建议选择哪个选项,以最大化在N步之后,用户将被提供所有关键选项的概率。
对于上面的例子,假设我们选择 N = 4。那么程序需要告诉我们,在出现的前4个选项中(包括 option1-5 的任意4个),选择哪一个会获得获得 option7 的最佳机会。由于要获得 option7,需要 option6,而为了获得 option6,需要 option4 和 option5,因此很明显你必须在第一组选择中选择 option4 或 option5 中的一个。当然,其中一个肯定会出现。
假设我们在第一次选择中得到了 {option3,option5,option2,option4}。然后程序会说:
如果你选择 option3,在4步内你永远不会获得 option7。p = 0; 如果你选择 option5,你可能会获得 option7,p = ....; ... option2,p = 0; ... option4,p = ...;
无论我们选择什么,对于接下来的4个选项,概率 p 都会重新计算。很明显,如果我们选择了 option3 或 option2,每个进一步的选择都有恰好 0 的概率使我们到达 option7。但是对于 option4 和 option5,p > 0。
现在清楚了吗?我不知道如何获得这些概率 p。