在 n 维网格(最大 10^7 维)中是两个点。他们在每个轴上都有假想的传感器。当这两个点可以发现自己时,我需要算法来计算所有可能的选项。
正式写自我的任务文档(翻译成英文):
让坐标(a1,a2,...,an)的A和坐标(b1,b2,...,bn)的B
是n-中的两个点维空间并且存在i ∈ 1, 2, ..., n使得ai = bi然后A 和 B 互相看到
示例:
在长度为 10的一维空间中,共有45 个组合,当他们看到对方时如何放置2 个点(他们每次都看到对方)。很容易组合 10C2 (10 of 2) = 45
如何通过程序以 2,3,4,...,10^7 维度计算它(我更喜欢 C#)?
我拥有的正确测试数据:
输入:
1
10
输出:45
输入:
2
5 8
输出:220
输入:
3
8 12 11
输出:14784
更多解释:
当空间中的两个点互相看到(在同一轴上)时,输出是组合的数量。在一维空间中只有一个轴,所以他们总是互相看到对方。在二维空间中是 2 轴,所以他们只能在某些情况下看到对方