Skip to content

Commit

Permalink
Update script.js
Browse files Browse the repository at this point in the history
  • Loading branch information
AltmannPeter authored Jul 28, 2023
1 parent e5b2c60 commit c8cb6b8
Showing 1 changed file with 42 additions and 16 deletions.
58 changes: 42 additions & 16 deletions script.js
Original file line number Diff line number Diff line change
@@ -1,21 +1,47 @@
body {
font-family: Arial, sans-serif;
}
let entropyData = [];

.container {
max-width: 600px;
margin: 0 auto;
padding: 20px;
}
function calculateShannonEntropy() {
const coinBias = parseFloat(document.getElementById("coin-bias").value);

if (isNaN(coinBias) || coinBias < 0 || coinBias > 100) {
document.getElementById("result").textContent = "Please enter a valid probability of 1 (between 0 and 100%).";
} else {
// Check for duplicate entries
const exists = entropyData.some(data => data.bias === coinBias);
if (exists) {
document.getElementById("result").textContent = "This value already exists in the table.";
return;
}

const probabilityOfOne = coinBias / 100;
const probabilityOfZero = 1 - probabilityOfOne;
const shannonEntropy = -(probabilityOfOne * Math.log2(probabilityOfOne) + probabilityOfZero * Math.log2(probabilityOfZero));
const formattedEntropy = shannonEntropy.toLocaleString(undefined, { maximumFractionDigits: 4 });

entropyData.push({ bias: coinBias, entropy: shannonEntropy });

table {
width: 100%;
border-collapse: collapse;
border: 1px solid #ddd;
// Sort the table and update
entropyData.sort((a, b) => b.entropy - a.entropy);
updateTable();

document.getElementById("result").textContent = ""; // Clear any previous messages
}
}

th, td {
padding: 8px;
text-align: left;
border: 1px solid #ddd;
function updateTable() {
const tableBody = document.getElementById("entropy-table");
tableBody.innerHTML = "";

entropyData.forEach((data) => {
const row = document.createElement("tr");
const biasCell = document.createElement("td");
const entropyCell = document.createElement("td");

biasCell.textContent = data.bias.toFixed(2) + "%";
entropyCell.textContent = data.entropy.toFixed(4);

row.appendChild(biasCell);
row.appendChild(entropyCell);
tableBody.appendChild(row);
});
}

0 comments on commit c8cb6b8

Please sign in to comment.