LOTO6 1,2,3,4,5,6 当せん出来るか?
下記のプログラムでランダムにチャックします。
1,2,3,4,5,6 になるまでの回数を合計します。
もちろん重複するものも計算されていますが
結果: 何回かチャレンジ(よくフリーズする) 後に、
583166回、4797297回になりました。
結果1
結果2
プログラム機能の確認
function loto6(){
var j = [];
do{
var c = Math.floor(Math.random()*(1-44)+44);
j.indexOf(c) == -1 ?j.push(c):'';
}while(j.length < 6);
return j.sort();
}
var x = [];
var t =[1,2,3,4,5,6];
var i = 0;
do{
x = loto6();
console.info(i++,x);
}while(t.sort().toString() !== x.toString() ) ;
console.log(x);
2020,09,13 更新 setIntervalを利用、フリーズしない。
//Loto6
function stop6() {
var t = [1, 2, 3, 4, 5, 6];
var i = 0;
console.log(new Date());
var work = setInterval(() => {
let x = function loto6() {
let j = [];
do {
var c = Math.floor(Math.random() * (1 - 44) + 44);
j.indexOf(c) == -1 ? j.push(c) : '';
} while (j.length < 6);
return j.sort((a, b) => a - b);
}();
console.info(i++, x);
if (t.toString() === x.toString()) {
clearInterval(work);
console.log(new Date());
}
}, 1);
}
//Loto7
function stop() {
var t = [1, 2, 3, 4, 5, 6, 7];
var i = 0;
console.log(new Date());
let work = setInterval(() => {
let x = function loto7() {
let j = [];
do {
let c = Math.floor(Math.random() * (1 - 38) + 38);
j.indexOf(c) == -1 ? j.push(c) : '';
} while (j.length < 7);
return j.sort((a, b) => a - b);
}();
console.info(i++, x);
if (t.toString() === x.toString()) {
console.log(new Date());
clearInterval(work);
}
}, 1);
}