Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Je tento Random generator number od AI ok?

Ahoj, kouknul by mi někdo pls na tento "program" jestli ten RNG funguje tak aby to bylo co nejvic nahodny a nedelalo to nejake kraviny, je to od AI. Díky moc

<!DOCTYPE html>
<html lang="cs">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Random 1–100 (auto + klik)</title>
<style>
:root {
--bg: #0f172a;
--card: #111827;
--text: #e5e7eb;
--accent: #60a5fa;
}
html, body {
height: 100%;
margin: 0;
background: #0f172a;
color: var(--text);
font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji";
}
.wrap {
min-height: 100%;
display: grid;
place-items: center;
user-select: none;
cursor: pointer;
}
.card {
width: min(500px, 92vw);
background: var(--card);
border: 1px solid rgba(255,255,255,0.08);
border-radius: 12px;
padding: 24px;
box-shadow: 0 4px 20px rgba(0,0,0,0.2);
text-align: center;
}
h1 {
margin: 0 0 8px;
font-weight: 700;
font-size: 20px;
color: #cbd5e1;
}
.number {
font-weight: 800;
font-size: clamp(60px, 12vw, 140px);
line-height: 1;
margin: 10px 0;
color: #ffffff;
transition: transform 150ms ease;
}
.hint {
opacity: .7;
font-size: 14px;
color: #9ca3af;
margin-bottom: 8px;
}
.pulse {
transform: scale(1.05);
}
.badge {
display: inline-block;
margin-left: 6px;
padding: 2px 8px;
border-radius: 999px;
font-size: 12px;
color: #0b1220;
background: var(--accent);
}
.controls {
margin-top: 10px;
display: flex;
gap: 8px;
justify-content: center;
flex-wrap: wrap;
}
button {
background: transparent;
border: 1px solid rgba(255,255,255,0.14);
color: var(--text);
padding: 8px 12px;
border-radius: 8px;
font-weight: 600;
letter-spacing: .2px;
cursor: pointer;
}
button:hover { border-color: rgba(255,255,255,0.28); }
</style>
</head>
<body>
<div class="wrap" id="app" title="Kliknutím vygenerujete nové číslo (1–100)">
<div class="card">
<h1>Generátor <span class="badge">1–100</span></h1>
<div id="number" class="number">–</div>
<div class="hint">Mění se každé <strong>3&nbsp;sekundy</strong> nebo kliknutím kamkoli.</div>
<div class="controls">
<button id="reroll">Změnit teď</button>
<button id="toggle">⏸︎ Pozastavit auto</button>
</div>
</div>
</div>

<script>
function randomIntInclusive(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
if (window.crypto && window.crypto.getRandomValues) {
const range = max - min + 1;
const maxUint = 0xFFFFFFFF;
const bucketSize = Math.floor((maxUint + 1) / range) * range;
let r;
do {
const buf = new Uint32Array(1);
window.crypto.getRandomValues(buf);
r = buf[0];
} while (r >= bucketSize);
return min + (r % range);
}
return Math.floor(Math.random() * (max - min + 1)) + min;
}

const MIN = 1;
const MAX = 100;
const numberEl = document.getElementById('number');
const rerollBtn = document.getElementById('reroll');
const toggleBtn = document.getElementById('toggle');

let intervalMs = 3000;
let timerId = null;
let autoRunning = true;

function animateOnce(el) {
el.classList.add('pulse');
setTimeout(() => el.classList.remove('pulse'), 150);
}

function updateNumber() {
const n = randomIntInclusive(MIN, MAX);
numberEl.textContent = n;
animateOnce(numberEl);
}

function startAuto() {
if (timerId !== null) return;
timerId = setInterval(updateNumber, intervalMs);
autoRunning = true;
toggleBtn.textContent = '⏸︎ Pozastavit auto';
}

function stopAuto() {
if (timerId === null) return;
clearInterval(timerId);
timerId = null;
autoRunning = false;
toggleBtn.textContent = '▶ Spustit auto';
}

updateNumber();
startAuto();

window.addEventListener('click', () => {
updateNumber();
});

window.addEventListener('keydown', (e) => {
if (e.code === 'Space') {
e.preventDefault();
updateNumber();
}
});

rerollBtn.addEventListener('click', (e) => {
e.stopPropagation();
updateNumber();
});

toggleBtn.addEventListener('click', (e) => {
e.stopPropagation();
if (autoRunning) stopAuto(); else startAuto();
});
</script>
</body>
</html>

Předmět Autor Datum
Na co tu "největší" náhodnout potřebuješ a proč ti nestačí "normální" náhodnost?
Wikan 23.10.2025 16:04
Wikan
prostě jsem chtěl říct aby to generovalo spravně, ono jsem četl jednou že udělat náhodnost jako náho…
Dejv3 23.10.2025 16:07
Dejv3
Není a proto se pro to obvykle používají už hotové funkce. Ten "tvůj" kód nedělá nic jiného, než že…
Wikan 23.10.2025 17:28
Wikan
To NENÍ gen. náhod. čísel ... to je webová stránka, která volá jakousi funkci pro ta čísla. Takže ta…
dsa 23.10.2025 16:07
dsa
no me zajima ten algoritmus jestli se tomu dá věřit
Dejv3 23.10.2025 16:07
Dejv3
Nechapes, ze to sa nevie lebo volas funkciu, o ktorej nic nevieme a z toho kodu sa to neda zistit? T…
fleg 23.10.2025 16:09
fleg
No to se musíš ptát autora té funkce ... nikdo do ní nevidí. Nebo si k ní najít nějaký popis.
dsa 23.10.2025 16:10
dsa
Nehledej v tom vědu. ;-) Jsou to standardní funkce (příkazy) v javascriptu, existuje k nim dokumenta…
host 23.10.2025 16:27
host
Nene, tak zas jednoduché to není ... algoritmicky v zásadě nelze generovat skutečně náhodná čísla. P…
dsa 23.10.2025 17:51
dsa
Ale jo, ty to bereš moc do vědecky a do hloubky. A nakonec z tazatele vypadne, že náhodný generátor…
host 23.10.2025 18:21
host
Pro "skutečně náhodná čísla" je třeba nějaký fyzikální "zdroj náhody", takže to už není jen funkce,…
HPET 23.10.2025 19:18
HPET
trochu prehanis s tou tucnou větou, jediny na co jsem se ptal jestli to funguje ten algoritmus, a ji…
Dejv3 24.10.2025 10:18
Dejv3
Proč si nechávat od AI vygenerovat složitý kód, kterému nerozumíš a nepoužít třeba tohle? https://j…
host 24.10.2025 11:12
host
tohle negeneruje automaticky bez klikani ne 2. jsem potřeboval aby to slo zmenšit na skoro co nejmen…
Dejv3 24.10.2025 11:31
Dejv3
O těch dalších požadavcích jsi před tím nic nepsal.
Wikan 24.10.2025 11:36
Wikan
Protože jsem předpokládal ze to co bylo v prvnim prispevku za kod, tak stejnou funkcionalitu jsem hl…
Dejv3 24.10.2025 11:41
Dejv3
Z toho kódu vážně není poznat, co jsi sám chtěl a co si vymyslela AI, protože to bylo v nějakém kódu…
Wikan 24.10.2025 12:11
Wikan
Pro "skutečně náhodná čísla" je třeba nějaký fyzikální "zdroj náhody", takže to už není jen funkce,…
Ale 23.10.2025 22:41
Ale
No nevím, co takový Heisenbergův princip neurčitosti?
Wikan 23.10.2025 22:54
Wikan
Dosť si mýliš termíny náhodnosť a neurčitosť.
Ale 23.10.2025 23:55
Ale
Psal jsi, že je všechno přesně určené.
Wikan 24.10.2025 07:11
Wikan
Blbost, viz. základní znalosti o kvantové fyzice. Třeba radioaktivní rozpad ... často se používá. Ro…
dsa 24.10.2025 07:33
dsa
Levnější je použít zenerovu diodu jako zdroj nahodnosti. Samozřejmě že všechno předvídat nelze.
MM_tank 24.10.2025 16:21
MM_tank
Bez zadání a očekávání a specifikace vstup vystup těžko zhodnotit, podle mě to je kočkopes HTML, ani… poslední
Redus 28.10.2025 19:02
Redus

Nene, tak zas jednoduché to není ... algoritmicky v zásadě nelze generovat skutečně náhodná čísla. Podle účelu existují různé přístupy a řešení. Ale nepochybně to bude v dokumentaci. Pro "skutečně náhodná čísla" je třeba nějaký fyzikální "zdroj náhody", takže to už není jen funkce, ale nějaké zařízení.

Ale jo, ty to bereš moc do vědecky a do hloubky. A nakonec z tazatele vypadne, že náhodný generátor potřebuje kvůli tomu, aby mu spočítal, kolik si má dát rohlíků k snídani... :-p

Myslím, že ta náhodnost v javascriptu je dostatečná.

Pro "skutečně náhodná čísla" je třeba nějaký fyzikální "zdroj náhody", takže to už není jen funkce, ale nějaké zařízení.

Host ma opravdu pravdu, s random jsem delal casto treba pro generator nahodnych cislel pro sportku, kdyz se ve skole ucis programovat tak u kapitoli "Random" padnes casto na priklad "Hod kostkou" ve hre a podobne.

Pro jedno nahodne cislo si to zkus treba v Powershell : Get-Random nebo kdyz chces jak tomu rikas "realne nahodne cislo" treba do 10 : Get-Random -Maximum 11 (jak muzes sam konstatovat neni to zadna veda) :-) Pak jestli je to js, Powershell, PHP, C#, Python princip je vpodstate stejny.
Pro vypsani 10 nahodnych cisel od 1 do 100 ti vleze na jeden radek: 1..10 | ForEach-Object { Get-Random -Minimum 1 -Maximum 101 }

Ten pouzity random k vygenerovani nahodnych cisel jde videt/rozlisit i v tom java sriptu

PS: Ale nechapu, proc chce po AI at mu splaca nejakou mrsinu nahodnych cisel aby potom lital po nete aby mu nekdo vysvetlil jak to funguje a co to dela nebo jestli to dela dobre.
Asi su uz moc starej, ale toto postrada veskerou logiku.

Blbost, viz. základní znalosti o kvantové fyzice. Třeba radioaktivní rozpad ... často se používá. Rozpad konkrétního jádra je naprosto náhodný. I při poločasu rozpadu 1 hod. se nemusí rozpadnout ani za 100 let. A pohyb 1 molekuly plynu v 1 l objemu i bez kvantové neurčitosti je náhodnější než nejnáhodnější funkce.

Bez zadání a očekávání a specifikace vstup vystup těžko zhodnotit, podle mě to je kočkopes HTML, animací a nadbytku JavaScriptu. A to ani neřeším podstatu: bezpečnost a kvalitu generaátoru.

Bohaté stací Math.random() , násobeni 100 modulo, plus, minus , a toInt() . A klidně to může běžet v javascriptovým okénku bez frontentu natož nějakých addeventlistener zhuvěrilosti... Ale neznám zadání faceliftu

Zpět do poradny Odpovědět na původní otázku Nahoru