17-06-2018, 06:02 PM
Alors moi j'ai un peu triché (en tout cas je pense que c'est pas très optimisé comme code et pas très joli).
Mon code (en blanc) :
function rand7(){
let n = rand5()*5 + rand5();
if(n>=21) {
return rand7();
}
return Math.trunc(n/3);
}
window.rand7Factory = function(rand5){
return function() {
return rand7();
}
}
Mais du coup, est-ce qu'on a le droit d'ignorer certains tirages et rappeler la fonction récursivement quand c'est le cas ?
En tout cas c'est la première idée qui m'est venue ; pour le coup presque immédiatement et j'obtiens bien un graphe équilibré.
Mon code (en blanc) :
function rand7(){
let n = rand5()*5 + rand5();
if(n>=21) {
return rand7();
}
return Math.trunc(n/3);
}
window.rand7Factory = function(rand5){
return function() {
return rand7();
}
}
Mais du coup, est-ce qu'on a le droit d'ignorer certains tirages et rappeler la fonction récursivement quand c'est le cas ?
En tout cas c'est la première idée qui m'est venue ; pour le coup presque immédiatement et j'obtiens bien un graphe équilibré.