我试图在不生成所有可能组合的实际列表的情况下找到特定组合的索引。例如:从 1 到 5 的 2 个数字组合产生 1,2;1,3,1,4,1,5;2,3,2,4,2,5..so..on。如果我的猜测是正确的,每个组合都有自己的索引,从零开始。我想在不为给定组合生成所有可能组合的情况下找到该索引。我正在用 C# 编写,但我的代码会即时生成所有可能的组合。如果 n 和 r 像 80 和 9 并且我什至无法枚举实际范围,这将是昂贵的。是否有任何可能的方法来查找索引而不产生该特定索引的实际组合
public int GetIndex(T[] combination)
{
int index = (from i in Enumerable.Range(0, 9)
where AreEquivalentArray(GetCombination(i), combination)
select i).SingleOrDefault();
return index;
}