פארוואס איז נישט דעם שאַרן אַלגערידאַם בייאַסט

מייַן מיטאַרבעטער און איך אַרגיוינג וועגן וואָס די שאַרן אַלגערידאַם געגעבן אין דעם רשימה פון JS עצות & טריקס טוט נישט פּראָדוצירן בייאַסט רעזולטאַטן ווי די סאָרט Jeff Atwood באשרייבט [11151704

די מענגע שאַרן קאָד אין די עצות איז:

list.sort(function() Math.random() - 0.5);

דזשעף ס נאַיוו שאַרן קאָד איז:


for (int i = 0; i < cards.Length; i++)
{
  int n = rand.Next(cards.Length);
  Swap(ref cards[i], ref cards[n]);
}

איך געשריבן דעם JS צו פּרובירן די שאַרן:


var list = [1,2,3];
var result = {123:0,132:0,321:0,213:0,231:0,312:0};
function shuffle() { return Math.random() - 0.5; }
for (var i=0; i<60000000; i++) {
    result[ list.sort(shuffle).join('') ]++;
}

פֿאַר וואָס איך באַקומען רעזולטאַטן (פֿון Firefox 5 ) ווי:

Order   Count          %Diff True Avg
123      9997461       -0.0002539
132     10003451        0.0003451
213     10001507        0.0001507
231      9997563       -0.0002437
312      9995658       -0.0004342
321     10004360        0.000436

מאַשמאָעס Array.sort איז גיין די רשימה מענגע און דורכפירן סוואַפּס פון (שכייניש) עלעמענטן ענלעך צו דזשעף ס בייַשפּיל. אַזוי וואָס טאָן ניט די רעזולטאַטן קוקן בייאַסט?

6
задан Rob 7 July 2011 в 21:09
поделиться