Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class UnfrairCoin{
- constructor(){
- this.probability = Math.random();
- }
- get(){
- return Math.random() > this.probability ? 1: 0
- }
- }
- class FairCoin{
- constructor(){
- this.unfairCoin = new UnfrairCoin();
- }
- get(){
- let first = this.unfairCoin.get();
- const unfairCoin = this.unfairCoin;
- let xor = first;
- function helper(){
- const coin = unfairCoin.get();
- if(coin !== first){
- return xor;
- }
- xor ^= 1;
- return helper();
- }
- return helper();
- }
- }
- var fairCoin = new FairCoin();
- var arr = Array.from(Array(1000), ()=>fairCoin.get());
- var arr2 = Array.from(Array(1000), () => Math.random() > 0.5 ? 1 : 0);
- console.log(fairCoin.unfairCoin.probability, arr.filter(x=>x).length, arr2.filter(x=>x).length);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement