Loading...
More JavaScript Posts
questions = Array.from(document.querySelectorAll(".multiple-choice-question"));async function hackRadio(question){if(question.querySelector(".question-chevron").getAttribute("aria-label") == "Question completed") return;let answerChoices = question.querySelectorAll(".zb-radio-button");async function guess(answerChoice){answerChoice.querySelector("label").click();}let pause = 0;for(let answerChoice of answerChoices){setTimeout(()=>{guess(answerChoice)},pause); //No need to check given that it will record the correct answer anyways.pause += 1000;}}for(let question of questions){hackRadio(question);}questions = Array.from(document.querySelectorAll(".short-answer-question"));async function hackShortAnswer(question){if(question.querySelector(".question-chevron").getAttribute("aria-label") == "Question completed") return;question.querySelector("textarea").value = question.querySelector(".forfeit-answer").textContent;//question.querySelector(".check-button").click(); They are smart bastards}for(let question of questions){const showAnswerButton = question.querySelector(".show-answer-button");showAnswerButton.click();showAnswerButton.click();hackShortAnswer(question);}
function printHeap(heap, index, level) {if (index >= heap.length) {return;}console.log(" ".repeat(level) + heap[index]);printHeap(heap, 2 * index + 1, level + 1);printHeap(heap, 2 * index + 2, level + 1);}//You can call this function by passing in the heap array and the index of the root node, which is typically 0, and level = 0.let heap = [3, 8, 7, 15, 17, 30, 35, 2, 4, 5, 9];printHeap(heap,0,0)
// Get the text that the user has selectedconst getSelectedText = () => window.getSelection().toString();getSelectedText();
const kMeans = (data, k = 1) => {const centroids = data.slice(0, k);const distances = Array.from({ length: data.length }, () =>Array.from({ length: k }, () => 0));const classes = Array.from({ length: data.length }, () => -1);let itr = true;while (itr) {itr = false;for (let d in data) {for (let c = 0; c < k; c++) {distances[d][c] = Math.hypot(...Object.keys(data[0]).map(key => data[d][key] - centroids[c][key]));}const m = distances[d].indexOf(Math.min(...distances[d]));if (classes[d] !== m) itr = true;classes[d] = m;}for (let c = 0; c < k; c++) {centroids[c] = Array.from({ length: data[0].length }, () => 0);const size = data.reduce((acc, _, d) => {if (classes[d] === c) {acc++;for (let i in data[0]) centroids[c][i] += data[d][i];}return acc;}, 0);for (let i in data[0]) {centroids[c][i] = parseFloat(Number(centroids[c][i] / size).toFixed(2));}}}return classes;};kMeans([[0, 0], [0, 1], [1, 3], [2, 0]], 2); // [0, 1, 1, 0]
const powerset = arr =>arr.reduce((a, v) => a.concat(a.map(r => r.concat(v))), [[]]);powerset([1, 2]); // [[], [1], [2], [1, 2]]
const heapsort = arr => {const a = [...arr];let l = a.length;const heapify = (a, i) => {const left = 2 * i + 1;const right = 2 * i + 2;let max = i;if (left < l && a[left] > a[max]) max = left;if (right < l && a[right] > a[max]) max = right;if (max !== i) {[a[max], a[i]] = [a[i], a[max]];heapify(a, max);}};for (let i = Math.floor(l / 2); i >= 0; i -= 1) heapify(a, i);for (i = a.length - 1; i > 0; i--) {[a[0], a[i]] = [a[i], a[0]];l--;heapify(a, 0);}return a;};heapsort([6, 3, 4, 1]); // [1, 3, 4, 6]