Skip to content

Instantly share code, notes, and snippets.

@eddiejhong
Created October 7, 2015 17:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save eddiejhong/7c8bfc0b2f34ad42cba0 to your computer and use it in GitHub Desktop.
Save eddiejhong/7c8bfc0b2f34ad42cba0 to your computer and use it in GitHub Desktop.
toilet
function getRandomStartingSeatConfiguration() {
var seatRandomMod = 2,
seatRandomNum = Math.floor(Math.random()*seatRandomMod);
if(seatRandomNum%seatRandomMod) {
return 'up';
} else {
return 'down';
}
}
function getRandomSex() {
var sexRandomMod = 2,
sexRandomNum = Math.floor(Math.random()*sexRandomMod);
if(sexRandomNum%sexRandomMod) {
return 'male';
} else {
return 'female';
}
}
function getRandomWasteType() {
var wasteRandomMod = 9,
wasteRandomNum = Math.floor(Math.random()*wasteRandomMod);
if(wasteRandomNum%wasteRandomMod == 8) {
return 'poop';
} else {
return 'pee';
}
}
function getWork(preference, sampleSize) {
var work = 0,
maleWork = 0,
femaleWork = 0,
seatConfiguration = getRandomStartingSeatConfiguration();
for(var i=0; i<sampleSize; i++) {
var sex = getRandomSex(),
waste = getRandomWasteType();
if(waste == 'poop' && seatConfiguration == 'up') {
work++;
seatConfiguration = 'down';
if(sex == 'male') {
maleWork++;
} else {
femaleWork++;
}
}
if(waste == 'pee') {
if(sex == 'male' && seatConfiguration == 'down') {
if(preference == 'up') {
work++;
seatConfiguration = 'up';
maleWork++;
} else if (preference == 'down') {
work += 2;
// seatConfiguration up, then down
maleWork += 2;
}
} else if ( sex == 'female' && seatConfiguration == 'up') {
work++;
seatConfiguration = 'down';
femaleWork++;
}
}
}
return {
workPct: Math.floor(work/sampleSize*100),
femaleWorkPct: Math.floor(femaleWork/work*100),
maleWorkPct: Math.floor(maleWork/work*100)
};
}
var preferUpWork = getWork('up', 1000000),
preferDnWork = getWork('down', 1000000);
console.log('up:'+JSON.stringify(preferUpWork), 'dn:'+JSON.stringify(preferDnWork));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment