繁体   English   中英

Devise Combinatorics命名约定

[英]Devise Combinatorics Naming Convention

我偶然发现了一个我正在寻找智能解决方案的问题。 基本上,这是一个组合问题。

我有五个对象,我需要选择两个,我可以选择同一对象两次,而选择它们的顺序并不重要。 这给了我(5 + 2-1选择2)= 15种可能的组合。 我现在想将每个组合(即(1,1)或(2,5))减少到1到15之间的数字。有什么建议吗?

准词典顺序。 在字典编排顺序中为每个选择分配其位置,第二个成分不少于第一个成分。

(i,j) -> (15 - (7-i)*(6-i)/2) + (j - i) + 1

假设您有一个组合(i,j)

在不失一般性的前提下,说我<= j

((7-i)+5)*(i-1)/2 + (j-i+1)

你会有

(1,1)-> 1(2,2)-> 6(3,3)-> 10(4,4)-> 13(5,5)-> 15

(1,2)-> 2(2,3)-> 7(3,4)-> 11(4,5)-> 14

(1,3)-> 3(2,4)-> 8(3,5)-> 12

(1,4)-> 4(2,5)-> 9

(1,5)-> 5

基本上,您首先要在第i列之前获得组合数,然后再加上(j-i + 1)作为行号

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM