gpt4 book ai didi

c# - 在 5 个变量中生成具有 2 个潜在值的所有组合的算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:48:49 24 4
gpt4 key购买 nike

如果之前有人回答过这个问题,我深表歉意,但我想不出一个好名字来搜索我要找的东西。我可能有 1-5 个字符串变量(我们称它们为 A、B、C、D、E),它们可以具有由“P”和“S”表示的两个值之一。这些用于复数和单数词形式

数据将始终以相同的顺序排列,即 ABCDE,因此这不是问题,但它可能不会包含所有五个(可能只是 A、AB、ABC 或 ABCD)。我正在寻找一种算法来处理这种可能性,同时生成所有潜在的复数/单数组合。所以在 5 变量字符串的情况下,结果将是:SSSS,软件,,SPSPS,...啪啪啪

我有复数化和存储数据的逻辑,问题只是生成所有这些组合的逻辑是什么。如果重要的话,我正在使用 C#。任何帮助将不胜感激!

最佳答案

所以只有两个可能的值,0 和 1。等一下……零和一……为什么这听起来很熟悉……?啊,二进制来拯救!

让我们从 0 开始用二进制数一下。

  • 0000 = 0
  • 0001 = 1
  • 0010 = 2
  • 0011 = 3
  • 0100 = 4
  • 0101 = 5
  • 0110 = 6
  • 0111 = 7
  • 1000 = 8
  • ...等等

如果您查看前两行最右边的位,我们有 1 位、0 和 1 的所有可能组合。

如果您随后查看前四行最右边的两位,您将获得所有 2 位组合:00、01、10 和 11。

前八行具有所有三个位组合等。

如果你想要所有可能的 x 位组合,计算从 0(2^x)-1 的所有数字并查看以二进制形式写入的数字的最后 x 位。

(同样,如果您有三个可能的值(0、1 和 2),您可以在 0(3^x)-1 之间计数并查看当以三元形式写入时,在最后的 x 位,对于所有可能的值数量,依此类推。)

关于c# - 在 5 个变量中生成具有 2 个潜在值的所有组合的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35182763/

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