$array = array(1, 2, 3, 4, 5, ..., N);
另外還有一個數字D = 10%
。什麼是數組中這樣的方式進行排序的最快方法是:Math&php:以特殊方式快速排列數組[1..N]
$sorted_array = {a[i]}
正好包含在混合順序的$array
元素,也:
abs(a[i + 1] - a[i]) >= N * 10%
任何[i]
,並期待隨機儘可能多儘可能。
例如,
// assume D = 25%
$array = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
// so the difference between any neighbors is >= 4 = 10 * 25%.
$sorted_array = array(4, 8, 3, 7, 1, 5, 9, 2, 6, 10);
當然,如果D
大,是不可能的我想要的數組進行排序。我不需要100%完美的結果,但我希望這些數字看起來是「隨機的」,其中大多數至少有10%不同。
我有一個奇怪的任務,但它有一個實用的區域使用。我想從圖像中提取隨機線條,它們應該儘可能不同。當然,數字圖像(照片等)上的相鄰線條看起來非常相似。
我說得對嗎?
這不是一個簡單的任務,我建議你先試一下,然後人們可以幫你改進它 – 2013-08-05 19:39:45
首先重要的是!!絕對值!的[i + 1] - a [i]部分必須大於或等於N * D,否則永遠不可能從8到3左右;其次,如果它必須看起來隨機化,則會變得更加複雜:S – JohannesB
感謝您指出絕對值。剛剛修好。 – Haradzieniec