Constnium/public/js/main.js
2022-06-23 13:56:52 +02:00

220 lines
7.9 KiB
JavaScript

window.addEventListener("load", () => main());
const input_name = "firstname";
const main = () => {
// Reset content of the input
document.getElementById(input_name).value = "";
// Call callback when editing the input
document.getElementById(input_name).addEventListener("input", update_const);
};
// Callback: called when firstname is changed
const update_const = () => {
const firstname = document.getElementById(input_name).value;
if(firstname.length) {
const data = get_const(firstname.toLowerCase().split(""));
console.log(`output: ${data.const} - ${JSON.stringify(data.infos)}`);
}
};
const get_const = (letters = Array) => {
console.log(`input: ${letters}`);
// Store constants of each letters of the firstname
let const_data = [];
// Store some constants info
let const_infos = {};
// Assign each letter to a constant, fallback to 1 if no one has been found
let position = 0;
letters.forEach(letter => {
position++;
switch (letter) {
case "a":
const_data.push(0.373955 ** position);
const_infos[letter] = {
"wikipedia": "https://en.wikipedia.org/wiki/Artin%27s_conjecture_on_primitive_roots"
};
break;
case "b":
const_data.push(1.456074 ** position);
const_infos[letter] = {
"wikipedia": "https://en.wikipedia.org/wiki/Backhouse%27s_constant"
};
break;
case "c":
const_data.push(1.46707807943397547289 ** position);
const_infos[letter] = {
"wikipedia": "https://en.wikipedia.org/wiki/Porter%27s_constant"
};
break;
case "d":
const_data.push(0.73908513321516064165 ** position);
const_infos[letter] = {
"wikipedia": "https://en.wikipedia.org/wiki/Dottie_number"
};
break;
case "e":
const_data.push(1.606695 ** position);
const_infos[letter] = {
"wikipedia": "https://en.wikipedia.org/wiki/Erd%C5%91s%E2%80%93Borwein_constant"
};
break;
case "f":
const_data.push(2.807770 ** position);
const_infos[letter] = {
"wikipedia": "https://en.wikipedia.org/wiki/Frans%C3%A9n%E2%80%93Robinson_constant"
};
break;
case "g":
const_data.push(0.834626 ** position);
const_infos[letter] = {
"wikipedia": "https://en.wikipedia.org/wiki/Gauss%27s_constant"
};
break;
/* case "h":
const_data.push(x ** position);
const_infos[letter] = {
"wikipedia": ""
};
const_infos[letter] = {
"wikipedia": ""
};
break; */
/* case "i":
const_data.push(x ** position);
const_infos[letter] = {
"wikipedia": ""
};
break; */
/* case "j":
const_data.push(x ** position);
const_infos[letter] = {
"wikipedia": ""
};
break; */
case "k":
const_data.push(0.764223 ** position);
const_infos[letter] = {
"wikipedia": "https://en.wikipedia.org/wiki/Landau%E2%80%93Ramanujan_constant"
};
break;
case "l":
const_data.push(0.97027011439203392574 ** position);
const_infos[letter] = {
"wikipedia": "https://en.wikipedia.org/wiki/Lochs%27s_theorem"
};
break;
case "m":
const_data.push(0.261497 ** position);
const_infos[letter] = {
"wikipedia": "https://en.wikipedia.org/wiki/Meissel%E2%80%93Mertens_constant"
};
break;
/* case "n":
const_data.push(x ** position);
const_infos[letter] = {
"wikipedia": ""
};
break; */
/* case "o":
const_data.push(x ** position);
const_infos[letter] = {
"wikipedia": ""
};
break; */
case "p":
const_data.push(2.29558714939263807403 ** position);
const_infos[letter] = {
"wikipedia": "https://en.wikipedia.org/wiki/Universal_parabolic_constant"
};
break;
case "q":
const_data.push(0.28878809508660242127 ** position); // فلاجوليت وريتشموند
const_infos[letter] = {
"oeis": {
"link": "https://oeis.org/A048651",
"name": "Decimal expansion of Product {k >= 1} (1 - 1/2^k)."
}
};
break;
case "r":
const_data.push(1.75793275661800453270 ** position);
const_infos[letter] = {
"oeis": {
"link": "https://oeis.org/A072449",
"name": "Kasner number"
}
};
break;
case "s":
const_data.push(0.18785964246206712024 ** position);
const_infos[letter] = {
"wikipedia": "https://en.wikipedia.org/wiki/MRB_constant"
};
break;
case "t":
const_data.push(1.92756197548292530426 ** position);
const_infos[letter] = {
"oeis": {
"link": "https://oeis.org/A086088",
"name": "Decimal expansion of the limit of the ratio of consecutive terms in the tetranacci sequence"
}
};
break;
case "u":
const_data.push(1.84775906502257351225 ** position);
const_infos[letter] = {
"wikipedia": "https://en.wikipedia.org/wiki/Self-avoiding_walk"
};
break;
/* case "v":
const_data.push(x ** position);
const_infos[letter] = {
"wikipedia": ""
};
break; */
case "w":
const_data.push(2.09455148154232659148 ** position);
const_infos[letter] = {
"wikipedia": "https://en.wikipedia.org/wiki/John_Wallis#Contributions_to_mathematics",
"oeis": {
"link": "https://oeis.org/A007493",
"name": "Decimal expansion of Wallis' number, the real root of x^3 - 2*x - 5"
}
};
break;
/* case "x":
const_data.push(x ** position);
const_infos[letter] = {
"wikipedia": ""
};
break; */
/* case "y":
const_data.push(x ** position);
const_infos[letter] = {
"wikipedia": ""
};
break; */
/* case "z":
const_data.push(x ** position);
const_infos[letter] = {
"wikipedia": ""
};
break; */
default: // By default, equals to 1
const_data.push(1);
};
});
// Multiply all the constants together
return {
"const": const_data.reduce((x, y) => x * y),
"infos": const_infos
};
};