配列の内容をランダムに並び替える
code:ruby
array.suffle
code:ruby
array.sort_by { rand }
code:js
1,2,3,4,5.sort(() => Math.random() - 0.5)
前これをやってみてマトモにシャッフルされなかったことある 増井.icon
仕方ないから自力でやった
雑に確認したけどちゃんとシャッフルできてますねshokai.icon
code:js
import {range} from 'lodash'
const shuffle = (arr) => arr.sort(() => Math.random() - 0.5)
// 0~99の配列を10000回シャッフルする
const results = []
for (let i = 0; i < 10000; i++) {
let result = shuffle(range(0, 100))
// console.log(results.join(','))
results.push(result)
}
// 各桁の平均が49~50の間であればよい
for (let i = 0; i < results0.length; i++) {
console.log(results.map(result => resulti).reduce((a,b) => a+b) / results.length)
}
確認しますた 増井.icon 2016/08/21 18:47:42
Firefoxだとうまくいかないですね
いつも36が左の方に表示される
nodeだったら大丈夫だった
麻雀のアガり判定作ったときハマったのでした
Firefoxだとほぼ元の位置から移動しないですね shokai.icon
sort()の実装によるようですね 増井.icon
この手法は危険なのだと思います
毎回結果が変わるものを比較関数に使うのは間違ってるのでしょう
#ランダム #乱数