jt512
Philosopher
- Joined
- Sep 24, 2011
- Messages
- 5,074
Version 2:
Version 1:
Leumas, if your version 2 app allows for an edge-landing, then your version 1 app is, incorrectly, counting edge-landings as heads. Alternatively, neither version allows for an edge-landing. Which is it?
Code:
<script id="worker2" type="javascript/worker">
onmessage = function (e) {
//console.log("Worker: Message received from main script", e.data[0]);
let resultT = 0;
let resultH = 0;
let count = parseInt(e.data[0]);
if (isNaN(count)) count = 1000;
if (count > 10000000) count = 10000000;
if (count < 10) count = 10;
const myArray = new Int32Array(4);
for (let i = 0; i < count; i++) {
crypto.getRandomValues(myArray);
const flip = myArray.reduce((a, b) => {
return a + b;
}, 0);
[HILITE]if (flip > 0) resultH++;[/HILITE]
[HILITE]else if(flip<0) resultT++;[/HILITE]
}
//console.log("Worker: Posting message back to main script", count);
postMessage([resultH, resultT]);
};
</script>
Version 1:
Code:
<script id="worker1" type="javascript/worker">
onmessage = function (e) {
//console.log("Worker: Message received from main script", e.data[0]);
const result = e.data[0] * e.data[1];
let resultT = 0;
let resultH = 0;
let count = parseInt(e.data[0]);
if (isNaN(count)) count = 1000;
if (count > 10000000) count = 10000000;
if (count < 10) count = 10;
for (let i = 0; i < count; i++) {
[HILITE]if (Math.random() >= 0.5) resultH++;[/HILITE]
[HILITE]else resultT++;[/HILITE]
}
//console.log("Worker: Posting message back to main script", count);
postMessage([resultH, resultT]);
};
</script>
Leumas, if your version 2 app allows for an edge-landing, then your version 1 app is, incorrectly, counting edge-landings as heads. Alternatively, neither version allows for an edge-landing. Which is it?
