- DOM.entropyBitsPerEvent.text(Math.log2(entropy.base.asInt).toFixed(2));
- }
-
- function getNumberOfEntropyBits(entropy) {
- var bitsStr = entropy.binaryStr.length.toString();
- // If using cards, assume they are not reused, thus additional entropy
- // decreases as more cards are used. This means entropy is measured
- // using n!, not base^n.
- // eg the second last card can be only one of two, not one of fifty two
- // so the added entropy for that card is only one bit at most
- if (entropy.base.asInt == 52) {
- var totalDecks = Math.ceil(entropy.base.parts.length / 52);
- var totalCards = totalDecks * 52;
- var totalCombos = factorial(52).pow(totalDecks);
- var totalRemainingCards = totalCards - entropy.base.parts.length;
- var remainingDecks = Math.floor(totalRemainingCards / 52);
- var remainingCards = totalRemainingCards % 52;
- var remainingCombos = factorial(52).pow(remainingDecks) * factorial(remainingCards);
- var currentCombos = totalCombos.divide(remainingCombos);
- bitsStr = currentCombos.toString(2).length.toString();
- }
- return bitsStr