例如,假設我有一個3維網格/數組,其軸線從1運行到1000(或等效地從0到999)。這個數組有1000^3個元素。將數字映射到N維網格/數組
我想使用Java以確定性的方式將範圍從0到1000^3的單個整數映射到此數組。最好該解決方案將適用於任何尺寸N.
這裏有這樣的功能的僞codish例如:
public Vector<int> nthElement(Vector<int> dims, int n)
所以,如果我這樣稱呼它nthElement([1000, 1000, 1000], 0)
它將返回[0, 0, 0]
而nthElement([1000, 1000, 1000], 1001)
將返回的東西如[999, 1, 0]
。
解決方案應該是N維,而不是3,如我的例子。
我認爲1001應該是[0,2,1],爲什麼999, 1,0? – 2010-12-23 12:08:54
@Saeed只要它是確定性的,元素的具體順序並不重要。我認爲前1000個數字會映射到[0,0,0]到[999,0,0],因此1001會是[999,1,0],但正如我所說,順序並不重要。 – lhahne 2010-12-23 12:12:37
如果[999,0,0]爲1000,則[0,1,0]將爲1001;)。 – 2010-12-23 12:27:32