【发布时间】:2014-11-25 13:35:32
【问题描述】:
我需要遍历所有对 i,j 和 0 <= i < n、0 <= j < n 和 i < j 以获得一些正整数 n。
问题是我只能遍历另一个变量,比如k。我可以控制k 的范围。所以问题是确定两种算术方法,f(k) 和g(k) 使得i=f(k) 和j=g(k) 遍历所有允许的对,因为k 遍历其连续值。
我怎样才能以简单的方式做到这一点?
【问题讨论】:
-
遍历顺序重要吗?如果是,请指定所需的顺序。
-
@NPE 遍历顺序无关紧要,只要所有对都只遍历一次即可。
-
这是你要找的
{(f(k), g(k)) | 0 <= f(k) < n, 0 <= g(k) < n, f(k) < g(k) }吗? k的界限是多少?什么是 f(k) 和 g(k)? -
@LoganMurphy 是的。我们想要一个方法
F(k)(=(f(k),g(k))),它接受k并返回一对(i,j),这样i < j、0<=i<n和0<=j<n,当k取值在一个合适的范围内时,所有这些对只出现一次。 -
有趣的问题。有些东西告诉我,这可能有一个优雅的算法,但我正在努力想出一个。 :-)
标签: algorithm loops matrix mapping integer-arithmetic