En Tilfældig generator er et værktøj eller en algoritme, der producerer uforudsigelige og ikke-deterministiske resultater. Disse generatorer er vigtige inden for mange områder, fra kryptografi til computersimulering.
- Uforudsigelige resultater: Tilfældige generatorer leverer resultater, som ikke kan forudsiges.
- Bruges i kryptografi: De er afgørende for sikker kommunikation.
- Computersimuleringer: Bruges ofte til modellering og analyse af komplekse systemer.
Generator af tilfældige tal

Hvordan fungerer en tilfældighedsgenerator? 🔍
Tilfældige generatorer arbejder enten med fysiske processer eller matematiske algoritmer. De vigtigste typer er ægte tilfældige talgeneratorer (TRNG'er) og pseudo-tilfældige talgeneratorer (PRNG'er).
Forskellige anvendelser af tilfældighed har ført til udviklingen af forskellige metoder til at generere tilfældige data. Nogle af disse har eksisteret siden oldtiden, herunder velkendte eksempler som terningkast, møntkast, blanding af spillekort, brug af røllikehalm (til spådom) i I Ching og utallige andre teknikker. På grund af disse teknikkers mekaniske karakter krævede det meget arbejde og tid at generere store mængder af tilstrækkeligt tilfældige tal (vigtigt i statistik). Derfor blev resultaterne nogle gange indsamlet og distribueret som tabeller med tilfældige tal.
Hvor spiller vi blackjack online?
Min bedste online casino-oplevelser Jeg har i Bizzo Casino lavet. Efter min mening er der BEDSTE UDVÆLGELSE ved borde med live dealere, hvor vi træner til det rigtige casino. I modsætning til mange andre onlinekasinoer udbetales gevinster også virkelig hurtigt og pålideligt her. Derfor kan jeg helt klart anbefale Bizzo!
Das Bizzo Casino tilbyder adskillige live blackjack-borde og en hurtig Udbetaling af vores overskud.

Jeg ville have penge alle andre steder vinde men indtil videre har jeg altid haft gode erfaringer med Bizzo Casino lavet.
Der findes flere beregningsmetoder til at generere pseudotilfældige tal. Alle når ikke målet om ægte tilfældighed, selvom de med varierende succes kan bestå nogle af de statistiske tests for tilfældighed, som er designet til at måle, hvor uforudsigelige deres resultater er (dvs. i hvor høj grad deres mønstre er genkendelige). Det gør dem generelt uanvendelige til f.eks. kryptografi. Der findes dog også omhyggeligt designede kryptografisk sikre pseudotilfældige talgeneratorer (CSPRNGS) med særlige funktioner, der er designet specifikt til kryptografi. Indsæt blev udviklet inden for kryptografi.

Anvendelser af tilfældighedsgeneratorer
- Spil og underholdning:
- Tilfældige generatorer bruges i Spil bruges til at skabe uforudsigelige elementer som terningkast, korttræk eller generering af niveauer.
- Kryptografi:
- Inden for informationssikkerhed er tilfældige talgeneratorer afgørende for genereringen af nøgler, salte og nonces, som er nødvendige for kryptering og autentificering.
- Statistik og stikprøver:
- Når man laver stikprøver til undersøgelser og studier, hjælper tilfældighedsgeneratorer med at trække repræsentative og upartiske stikprøver.
- Simuleringsmodeller:
- Inden for videnskab og teknologi bruges tilfældige talgeneratorer til at udføre Monte Carlo-simuleringer, der bruger tilfældige variabler til at modellere og analysere komplekse systemer.
- Lotterier og konkurrencer:
- De sikrer en fair og tilfældig udvælgelse af vindere i lotterier og andre konkurrencer.
- Optimeringsalgoritmer:
- Tilfældige metoder som genetiske algoritmer og simuleret udglødning bruger tilfældige generatorer til effektivt at søge i løsningsrum og finde optimale løsninger.
- Kunstig intelligens og maskinlæring Læring:
- Tilfældige generatorer bruges til at blande datasæt og tilfældigt vælge trænings- og testdata til at validere og træne modellerne.
Tilfældige talgeneratorer anvendes inden for spil, statistisk prøveudtagning, computersimulering, kryptografi, fuldt randomiseret design og andre områder, hvor det er ønskeligt at generere et uforudsigeligt resultat. Generelt foretrækkes hardwaregeneratorer, hvor det er muligt, i applikationer, hvor uforudsigelighed er det vigtigste, f.eks. sikkerhedsapplikationer.
Vores bedste blackjack online casinoer

🔄 + 150 gratis spins



🔄 + 175 gratis spins



🔄 +150 gratis spins



🔄 + 150 gratis spins





Pseudotilfældige talgeneratorer er meget nyttige i udviklingen af Monte Carlo-simuleringsmetoder, da fejlfinding lettes ved at kunne gentage den samme sekvens af tilfældige tal, når man starter med det samme tilfældige seed. De bruges også i kryptografi - så længe seed'et forbliver hemmeligt. Afsender og modtager kan automatisk generere det samme sæt tal til brug som nøgle.
Generering af pseudotilfældige tal er en vigtig og almindelig opgave i computerprogrammering. Mens kryptografi og visse numeriske algoritmer kræver en meget høj grad af tilsyneladende tilfældighed, kræver mange andre operationer kun en beskeden grad af uforudsigelighed. Nogle enkle eksempler kan være at præsentere en bruger for et "dagens tilfældige citat" eller at bestemme, hvilken retning en computerstyret modstander i et computerspil kan bevæge sig i. Svagere former for tilfældighed bruges i hashing-algoritmer og til at skabe amortiserede søge- og sorteringsalgoritmer.
Nogle applikationer, som ved første øjekast virker egnede til randomisering, er ikke så enkle i virkeligheden. For eksempel behøver et system, der "tilfældigt" vælger musiknumre til et baggrundsmusiksystem, kun at se tilfældigt ud og kan endda have måder at randomisere musikvalget på. styreEt virkeligt randomiseret system ville ikke have den begrænsning, at den samme titel kunne optræde to eller tre gange i træk.
Ægte tilfældige tal vs. pseudo-tilfældige tal 🆚.
Forskellen mellem rigtige og pseudo-tilfældige tal ligger i forudsigeligheden og kilden til tilfældigheden.
- Ægte tilfældige tal: Uforudsigelig, baseret på fysiske processer.
- Pseudo-tilfældige tal: Genereret af algoritmer, forudsigelige, hvis frøet er kendt.
Der er to hovedmetoder til at generere tilfældige tal. Den første metode måler et fysisk fænomen, der betragtes som tilfældigt, og kompenserer derefter for mulige forvrængninger i måleprocessen. Eksempler på kilder er måling af atmosfærisk støj, termisk støj og andre eksterne elektromagnetiske og kvantemekaniske fænomener. For eksempel er kosmisk baggrundsstråling eller radioaktivt henfald målt over korte tidsperioder kilder til naturlig entropi (som et mål for uforudsigeligheden eller overraskelsen i talgenereringsprocessen).
Den hastighed, hvormed entropi kan udvindes fra naturlige kilder, afhænger af de underliggende fysiske fænomener, der måles. Derfor siges kilder til naturligt forekommende "ægte" entropi at være blokerende - de er hastighedsbegrænsede, indtil der er indsamlet nok entropi til at imødekomme efterspørgslen. På nogle Unix-lignende systemer, herunder de fleste Linux-distributioner, blokerer pseudo-enhedsfilen /dev/random, indtil der er indsamlet tilstrækkelig entropi fra omgivelserne. På grund af denne blokering kan læsning af store mængder data fra /dev/random, som f.eks. at fylde en harddisk med tilfældige bits, ofte være langsom på systemer, der bruger denne type entropikilde.
Den anden metode bruger beregningsalgoritmer, der kan generere lange sekvenser af tilsyneladende tilfældige resultater, som i virkeligheden er helt bestemt af en kortere startværdi, kendt som seed-værdien eller nøglen. Det gør det muligt at genskabe hele den tilsyneladende tilfældige sekvens, hvis seed-værdien er kendt. Denne type tilfældighedsgenerator kaldes ofte en pseudotilfældig talgenerator. Denne type generator er normalt ikke-blokerende, så den er ikke hastighedsbegrænset af en ekstern begivenhed, hvilket giver mulighed for at læse store mængder data.
Nogle systemer bruger en hybrid tilgang, der indsamler tilfældigheder fra naturlige kilder, når de er tilgængelige, og er afhængige af kryptografisk sikre pseudotilfældige talgeneratorer (CSPRNG'er), der periodisk genindlæses, når den ønskede læsehastighed overskrider den naturlige indsamlings tilgangs evne til at imødekomme efterspørgslen. Denne tilgang undgår den hastighedsbegrænsede blokeringsadfærd hos tilfældige talgeneratorer, der er baseret på langsommere og rent miljøbaserede metoder.
Selv om en pseudotilfældig talgenerator, der udelukkende er baseret på deterministisk logik, aldrig kan betragtes som en "ægte" tilfældig kilde i ordets reneste forstand, er de generelt tilstrækkelige i praksis, selv til krævende sikkerhedskritiske anvendelser. Omhyggeligt designede og implementerede pseudotilfældige talgeneratorer kan certificeres til sikkerhedskritiske kryptografiske formål, som det er tilfældet med Yarrow- og Fortuna-algoritmerne. Førstnævnte er grundlaget for entropikilden /dev/random på FreeBSD, AIX, macOS, NetBSD og andre. OpenBSD bruger en pseudo-tilfældig talalgoritme kendt som arc4random.
Generationsmetoder
Fysiske metoder
De tidligste metoder til at generere tilfældige tal, såsom terningekast, møntkast og roulettehjul, bruges stadig i dag, primært i spil og gambling, da de er for langsomme til de fleste anvendelser inden for statistik og kryptografi.
En fysisk tilfældighedsgenerator kan være baseret på et i bund og grund tilfældigt atomart eller subatomart fysisk fænomen, hvis uforudsigelighed kan tilskrives kvantemekanikkens love. Kilder til entropi omfatter radioaktivt henfald, termisk støj, skudstøj, lavinestøj i Zener-dioder, urafvigelser, de tidsmæssige bevægelser af en harddisks læsehoved og radiostøj. Men fysiske fænomener og de værktøjer, der bruges til at måle dem, udviser generelt asymmetrier og systematiske forvrængninger, som gør, at deres resultater ikke er ensartet tilfældige. En tilfældig ekstraktor, som f.eks. en kryptografisk hashfunktion, kan bruges til at opnå en ensartet fordeling af bits fra en ikke-ensartet tilfældig kilde, men med en lavere bithastighed.
En prototype af en højhastigheds realtidsgenerator for tilfældige tal baseret på en kaotisk laser blev udviklet i 2013.
Der er udviklet forskellige opfindsomme metoder til at indsamle denne entropiske information. En teknik er at anvende en hashfunktion på et billede af en videostrøm fra en uforudsigelig kilde. Lavarand brugte denne teknik med billeder fra flere lavalamper. HotBits målte radioaktivt henfald med Geiger-Müller-rør, mens Random.org registrerede udsving i amplituden af atmosfærisk støj med en normal radio.
Computerstøttede metoder
De fleste tilfældige tal, der genereres af computere, bruger PRNG'er, som er algoritmer, der automatisk kan generere lange sekvenser af tal med gode tilfældighedsegenskaber, men i sidste ende gentager sekvenserne sig (eller hukommelsesforbruget vokser i det uendelige). Disse tilfældige tal er tilstrækkelige i mange situationer, men de er ikke så tilfældige som tal, der genereres af elektromagnetisk atmosfærisk støj, der bruges som entropikilde. Sættet af værdier, der genereres af sådanne algoritmer, bestemmes generelt af et fast tal, der kaldes seed. En af de mest almindelige PRNG'er er den lineære kongruensgenerator, som bruger rekursionsrelationen
Xn+1=(aXn+b)mod mX_{n+1} = (aX_n + b) \mod mXn+1=(aXn+b)modm
bruges til at generere tal, hvor aaa, bbb og mmm er store heltal, og Xn+1X_{n+1}Xn+1 er det næste tal i en serie af pseudotilfældige tal. Det maksimale antal tal, som formlen kan generere, er modulet mmm. Rekursionsrelationen kan udvides til matricer for at få meget længere perioder og bedre statistiske egenskaber. For at undgå visse ikke-tilfældige egenskaber ved en enkelt lineær kongruensgenerator kan flere sådanne tilfældige talgeneratorer med lidt forskellige værdier af multiplikatorkoefficienten aaa bruges parallelt, hvor en "master"-tilfældig talgenerator vælger mellem de forskellige generatorer.
En enkel metode til manuelt at generere tilfældige tal er den såkaldte mean square-metode, som blev foreslået af John von Neumann. Selvom den er nem at implementere, er dens output af dårlig kvalitet. Den har en meget kort periode og alvorlige svagheder, som f.eks. at outputsekvensen næsten altid konvergerer mod nul. En nylig innovation er at kombinere middelkvadratmetoden med en Weyl-sekvens. Denne metode producerer output af høj kvalitet over en lang periode.
De fleste programmeringssprog indeholder funktioner eller biblioteksrutiner, der giver tilfældige talgeneratorer. De er ofte designet til at levere en tilfældig byte eller et tilfældigt ord eller et ensartet fordelt flydende tal mellem 0 og 1.
Kvaliteten, dvs. tilfældigheden, af sådanne biblioteksfunktioner varierer meget, fra helt forudsigeligt output til kryptografisk sikkert. Standardgeneratoren for tilfældige tal i mange sprog, herunder Python, Ruby, R, IDL og PHP, er baseret på Mersenne Twister-algoritmen og er ikke tilstrækkelig til kryptografiske formål, som det udtrykkeligt er angivet i sprogdokumentationen. Sådanne biblioteksfunktioner har ofte dårlige statistiske egenskaber, og nogle gentager mønstre efter kun titusinder af forsøg. De initialiseres ofte med en computers realtidsur som seed, da et sådant ur er 64-bit og måler i nanosekunder, langt ud over en persons præcision. Disse funktioner kan give tilstrækkelig tilfældighed til visse opgaver (f.eks. videospil), men er uegnede, når der kræves tilfældighed af høj kvalitet, f.eks. i kryptografiske applikationer eller statistik.
Tilfældige talgeneratorer af højere kvalitet er tilgængelige på de fleste operativsystemer; for eksempel /dev/random på forskellige BSD-derivater, Linux, Mac OS X, IRIX og Solaris eller CryptGenRandom til Microsoft Windows. De fleste programmeringssprog, inklusive dem, der er nævnt ovenfor, giver mulighed for at få adgang til disse kilder på højere niveau.
Genereret af mennesker
Generering af tilfældige tal kan også udføres af mennesker ved at indsamle forskellige input fra slutbrugere og bruge dem som en kilde til tilfældighed. De fleste undersøgelser viser dog, at mennesker udviser en vis grad af ikke-tilfældighed, når de forsøger at generere en tilfældig sekvens af f.eks. cifre eller bogstaver. De skifter måske mellem valgmulighederne for ofte i forhold til en god tilfældighedskilde, og derfor er denne tilgang ikke særlig udbredt. Af samme grund som mennesker klarer sig dårligt i denne opgave, kan menneskelig generering af tilfældige tal bruges som et værktøj til at få indsigt i hjernefunktioner, der ikke er tilgængelige på andre måder.
Efterbehandling og statistisk kontrol
Selv med en plausibel kilde til tilfældige tal (måske fra en kvantemekanikbaseret hardwaregenerator) kræver det omhu at opnå helt objektive tal. Disse generatorers opførsel ændrer sig ofte med temperaturen, forsyningsspændingen, enhedens alder eller andre eksterne påvirkninger.
Genererede tilfældige tal udsættes nogle gange for statistiske tests, før de bruges, for at sikre, at den underliggende kilde stadig fungerer, og derefter efterbehandles de for at forbedre deres statistiske egenskaber. Et eksempel er TRNG9803-hardware-generatoren for tilfældige tal, som bruger en entropimåling som hardwaretest og derefter efterbehandler den tilfældige sekvens med en shift register stream cipher. Det er generelt svært at bruge statistiske tests til at validere de genererede tilfældige tal. Wang og Nicol foreslog en afstandsbaseret statistisk testteknik, der bruges til at identificere svaghederne ved flere tilfældige talgeneratorer. Li og Wang foreslog en metode til at teste tilfældige tal baseret på laserkaotiske entropikilder ved hjælp af egenskaber ved Brownsk bevægelse.
Statistiske tests bruges også til at skabe tillid til, at det efterbehandlede endelige output fra en tilfældighedsgenerator virkelig er upartisk, og der er udviklet adskillige tilfældighedstestpakker.
Yderligere overvejelser
Tilpas distributionen
Ensartede fordelinger
De fleste tilfældige talgeneratorer arbejder naturligt med heltal eller enkelte bits, så der kræves et ekstra trin for at opnå den "kanoniske" ensartede fordeling mellem 0 og 1. Implementeringen er ikke så triviel som at dividere det hele tal med dets maksimum mulig værdi. Helt konkret:
- Det heltal, der bruges i transformationen, skal have nok bits til den ønskede præcision.
- Det ligger i selve floating point-aritmetikkens natur, at der er større præcision, jo tættere tallet er på nul. Denne ekstra præcision bruges normalt ikke på grund af det store antal bits, der kræves.
- Afrundingsfejl under division kan forvrænge resultatet. I værste fald kan et angiveligt udelukket område tegnes med reelle tal, stik imod matematikkens forventninger.
Den almindelige algoritme, der bruges af OpenJDK, Rust og NumPy, er beskrevet i et forslag til STL i C++. Den udnytter ikke den ekstra præcision og lider kun under forvrængning i den sidste bit på grund af afrunding til det nærmeste lige tal. Der er andre numeriske problemer, hvis denne "kanoniske" ensartede fordeling forskydes til et andet område. En foreslået metode til programmeringssproget Swift hævder at bruge fuld præcision overalt.
Ensartet fordelte heltal bruges ofte i algoritmer som Fisher-Yates shuffle. Igen kan en naiv implementering introducere en modulo-forvrængning i resultatet, så der skal bruges mere udførlige algoritmer. En metode, der næsten aldrig udfører division, blev beskrevet af Daniel Lemire i 2018, og det nuværende tekniske niveau er den aritmetiske kodningsinspirerede "optimale algoritme" af Stephen Canon fra Æble Inc. i år 2021.
De fleste 0 til 1 RNG'er inkluderer 0, men udelukker 1, mens andre inkluderer eller udelukker begge dele.
Andre uddelinger
Ud fra en kilde med ensartet fordelte tilfældige tal er der flere metoder til at skabe en ny tilfældig kilde, der svarer til en sandsynlighedstæthedsfunktion. En metode kaldet inversionsmetoden involverer integration op til et område, der er større end eller lig med lige af det tilfældige tal (som skal genereres mellem 0 og 1 for at få en korrekt fordeling). En anden metode kaldet accept-afvisningsmetoden involverer valg af en x- og y-værdi og Testningom funktionen af x er større end y-værdien. Hvis det er tilfældet, accepteres x-værdien. I modsat fald bliver x-W