@Sephi 10k itérations. Tu peux mettre ?i=100000 dans l'url si tu en veux plus.
Je donne ma solution :
J'aime pas trop tous les if/else (habilement cachés sous forme de switch), ça fait un peu trop "manuel". Mais ça marche. Pour le coup, la récursion potentiellement infinie ne me gêne pas.
edit: @Meraxes ci-dessous, Ok !
Je donne ma solution :
Code :
window.rand7Factory = function(rand5) {
function bit() {
var n = rand5()
if (n > 1) return bit() // ici le modulo de Sephi améliorerait les perfs
return n
}
return function rand7() {
switch (rand5()) {
case 0: return bit()
case 1: return 2 + bit()
case 2: return 4 + bit()
case 3: if (bit()) return 6
}
return rand7()
}
}
J'aime pas trop tous les if/else (habilement cachés sous forme de switch), ça fait un peu trop "manuel". Mais ça marche. Pour le coup, la récursion potentiellement infinie ne me gêne pas.
edit: @Meraxes ci-dessous, Ok !