编写模式匹配游戏。
我们有 135 个符号。在这 135 个符号中,使用了 108 个符号的子集。从 108 个子集中,随机选择 18、21 或 24 个符号。为简单起见,让我们坚持使用 18。
选择符号后,将无法再次使用。
一次使用 27 个符号组,我们需要生成最少 27 个组,确保当从 108 个子集中随机选择 18 个符号时,我们保证其中 1 个将匹配至少 12 个其他符号来自 27 个组中至少 1 个的 18 个随机数的符号。
问题是,生成 27 组以确保满足符号匹配要求的编程逻辑(我们使用 C#)是什么?
如果我们不关心必须匹配的东西,那将是一个直接的组合/因子计算。
例如,沿线: (135 * 134 * 133 * ... * 27) / (27 * 26 * ... * 1)
但我完全不知道满足匹配要求的最佳方法。
伪逻辑和/或示例代码将不胜感激!
编辑:按要求尝试此示例。希望它可以解决问题。我将使用数字,因为尝试上传 135 个图像符号是不切实际的。
因此,假设我们的 135 个符号是数字 1-135(包括 1-135)。在这 135 个数字中,选择了 108 个子集。为简单起见,让我们使用数字 1-108。
从子集 1-108 中挑选 18 个随机数:让我们使用 1-18 (含)代替符号。
我们需要找出 27 个符号的最小组数(本例中的数字),以便至少一组 27 个(从我们所有的 27 个组中)将具有 18 个随机数中的至少 12 个(符号)。
也就是说,一组可能看起来像:1,2,3,5,6,7,77,9,10,13,15,30,40,50,60,70,56,43,100,4,103,99, 66,8,78,44,55,因为它匹配 18 个随机符号(数字)中的 12 个。
请注意,在选择 27 个组之后选择 18 个随机符号。根据需要可以有任意多的 27 组。