Zufallsgenerator: Erzeuge eine zufällige Zahl & erfahre alles dazu!
Gerador aleatório: Crie um número aleatório e descubra tudo sobre ele!

Gerador aleatório: Crie um número aleatório e descubra tudo sobre ele!

Um Gerador aleatório é uma ferramenta ou algoritmo que produz resultados imprevisíveis e não determinísticos. Estes geradores são essenciais em muitos domínios, desde a criptografia à simulação informática.

Zuletzt geprüft und aktualisiert: Juni 2026 von Sara Devegano

  • Resultados imprevisíveis: Zufallsgeneratoren liefern Ergebnisse, die nicht vorhergesagt werden können.
  • Utilização em criptografia: Sie sind entscheidend für sichere Kommunikation.
  • Simulações informáticas: Häufig genutzt in der Modellierung und Analyse komplexer Systeme.

Gerador de números aleatórios


Zufallsgenerator: Erzeuge eine zufällige Zahl & erfahre alles dazu! - 22/07/2024

Como funciona um gerador de números aleatórios? 🔍

Os geradores aleatórios funcionam com processos físicos ou algoritmos matemáticos. Os tipos mais importantes são os geradores de números aleatórios verdadeiros (TRNGs) e os geradores de números pseudo-aleatórios (PRNGs).

Verschiedene Anwendungen von Zufälligkeit haben zur Entwicklung unterschiedlicher Methoden zur Generierung zufälliger Daten geführt. Einige davon existieren seit der Antike, einschließlich bekannter Beispiele wie Würfeln, Münzwurf, Mischen von Spielkarten, Verwendung von Schafgarbenstielen (zur Wahrsagung) im I Ging sowie unzähligen anderen Techniken. Aufgrund der mechanischen Natur dieser Techniken erforderte das Generieren großer Mengen ausreichend zufälliger Zahlen (wichtig in der Statistik) viel Arbeit und Zeit. Daher wurden die Ergebnisse manchmal gesammelt und als Zufallszahlentabellen verteilt.

Es gibt mehrere rechnerische Methoden zur Generierung von Pseudorandom-Zahlen. Alle verfehlen das Ziel wahrer Zufälligkeit, obwohl sie mit unterschiedlichem Erfolg einige der statistischen Tests für Zufälligkeit bestehen können, die messen sollen, wie unvorhersehbar ihre Ergebnisse sind (d.h. in welchem Maße ihre Muster erkennbar sind). Dies macht sie im Allgemeinen unbrauchbar für Anwendungen wie Kryptografie. Es gibt jedoch auch sorgfältig entwickelte kryptografisch sichere Pseudorandom-Zahlengeneratoren (CSPRNGS) mit speziellen Merkmalen, die speziell für den Inserir foram desenvolvidos no domínio da criptografia.

Onde é que se joga blackjack online?

O meu melhor Experiências de casino online Eu tenho no Playamo Casino feito. Na minha opinião, existe a MELHOR SELECÇÃO em mesas com dealers ao vivo, onde treinamos para o casino real. Ao contrário de muitos outros casinos online, aqui os ganhos são pagos de forma muito rápida e fiável. É por isso que posso recomendar a Playamo!

O Casino Playamo oferece inúmeras mesas de blackjack ao vivo e um serviço rápido de Pagamento dos nossos lucros.
CLIQUE NO BOTÃO AGORA PARA GARANTIR O SEU BÓNUS!
Zufallsgenerator: Erzeuge eine zufällige Zahl & erfahre alles dazu! - 22/07/2024

Aplicações dos geradores aleatórios

  1. Jogos e entretenimento:
    • Os geradores aleatórios são utilizados em Jogar zur Erstellung unvorhersehbarer Elemente wie Würfelwürfe, Kartenziehungen oder Level-Generierung verwendet.
  2. Criptografia:
    • In der Informationssicherheit sind Zufallsgeneratoren entscheidend für die Erzeugung von Schlüsseln, Salts und Nonces, die für die Verschlüsselung und Authentifizierung benötigt werden.
  3. Estatísticas e amostras:
    • Bei der Erstellung von Stichproben für Umfragen und Studien helfen Zufallsgeneratoren, repräsentative und unvoreingenommene Proben zu ziehen.
  4. Modelos de simulação:
    • Na ciência e tecnologia, os geradores de números aleatórios são utilizados para efetuar simulações de Monte Carlo que utilizam variáveis aleatórias para modelar e analisar sistemas complexos.
  5. Lotarias e concursos:
    • Sie gewährleisten die faire und zufällige Auswahl von Gewinnern in Lotterien, Gewinnspielen und anderen Wettbewerben.
  6. Algoritmos de otimização:
    • Zufällige Verfahren wie genetische Algorithmen und Simulated Annealing nutzen Zufallsgeneratoren, um Lösungsräume effizient zu durchsuchen und optimale Lösungen zu finden.
  7. Künstliche Intelligenz und maschinelles Aprendizagem:
    • Zufallsgeneratoren werden verwendet, um Datenmengen zu mischen und Trainings- und Testdaten zufällig auszuwählen, um die Modelle zu validieren und zu trainieren.

Zufallszahlengeneratoren haben Anwendungen im Jogos de azar, in der statistischen Stichprobenahme, in der Computersimulation, in der Kryptografie, im vollständig randomisierten Design und in anderen Bereichen, in denen die Erzeugung eines unvorhersehbaren Ergebnisses wünschenswert ist. Im Allgemeinen werden in Anwendungen, bei denen Unvorhersehbarkeit das Hauptmerkmal ist, wie in Sicherheitsanwendungen, Hardware-Generatoren bevorzugt, wo dies möglich ist.

Pseudorandom-Zahlengeneratoren sind sehr nützlich bei der Entwicklung von Monte-Carlo-Simulationsmethoden, da das Debuggen erleichtert wird, indem dieselbe Sequenz von Zufallszahlen wiederholt werden kann, wenn mit demselben Zufallssamen begonnen wird. Sie werden auch in der Kryptografie verwendet – solange der Samen geheim bleibt. Der Absender und der Empfänger können automatisch denselben Satz von Zahlen generieren, um sie als Schlüssel zu verwenden.

Die Erzeugung von Pseudorandom-Zahlen ist eine wichtige und häufige Aufgabe in der Computerprogrammierung. Während Kryptografie und bestimmte numerische Algorithmen einen sehr hohen Grad an scheinbarer Zufälligkeit erfordern, benötigen viele andere Operationen nur ein bescheidenes Maß an Unvorhersehbarkeit. Einige einfache Beispiele könnten sein, einem Benutzer ein „zufälliges Zitat des Tages“ zu präsentieren oder zu bestimmen, in welche Richtung sich ein computergesteuerter Gegner in einem Computerspiel bewegen könnte. Schwächere Formen der Zufälligkeit werden in Hash-Algorithmen und bei der Erstellung amortisierter Such- und Sortieralgorithmen verwendet.

Einige Anwendungen, die auf den ersten Blick für Randomisierung geeignet erscheinen, sind in Wirklichkeit nicht so einfach. Zum Beispiel muss ein System, das „zufällig“ Musikstücke für ein Hintergrundmusiksystem auswählt, nur zufällig erscheinen und kann sogar Möglichkeiten haben, die Musikauswahl zu boi: Ein wirklich zufälliges System hätte keine Einschränkung, dass derselbe Titel zwei- oder dreimal hintereinander erscheinen könnte.


Números aleatórios reais vs. números pseudo-aleatórios 🆚

A diferença entre números reais e pseudo-aleatórios reside na previsibilidade e na fonte da aleatoriedade.

  • Números aleatórios reais: Imprevisível, baseado em processos físicos.
  • Números pseudo-aleatórios: Gerados por algoritmos, previsíveis se a semente for conhecida.

Es gibt zwei Hauptmethoden zur Generierung von Zufallszahlen. Die erste Methode misst ein physikalisches Phänomen, das als zufällig angesehen wird, und kompensiert dann mögliche Verzerrungen im Messprozess. Beispiele für Quellen sind die Messung von atmosphärischem Rauschen, thermischem Rauschen und anderen externen elektromagnetischen und quantenmechanischen Phänomenen. Beispielsweise stellen kosmische Hintergrundstrahlung oder radioaktiver Zerfall, die über kurze Zeiträume gemessen werden, Quellen natürlicher Entropie dar (als Maß für die Unvorhersehbarkeit oder Überraschung des Zahlengenerierungsprozesses).

Die Geschwindigkeit, mit der Entropie aus natürlichen Quellen gewonnen werden kann, hängt von den zugrunde liegenden physikalischen Phänomenen ab, die gemessen werden. Daher wird gesagt, dass Quellen natürlicherweise vorkommender „wahrer“ Entropie blockierend sind – sie sind ratenbegrenzt, bis genügend Entropie gesammelt wird, um die Nachfrage zu decken. Auf einigen Unix-ähnlichen Systemen, einschließlich der meisten Linux-Distributionen, blockiert die Pseudogerätedatei /dev/random, bis ausreichend Entropie aus der Umgebung gesammelt wurde. Aufgrund dieses blockierenden Verhaltens können große Massendatenlesevorgänge von /dev/random, wie das Befüllen einer Festplatte mit Zufallsbits, auf Systemen, die diese Art von Entropiequelle verwenden, oft langsam sein.

Die zweite Methode verwendet Rechenalgorithmen, die lange Sequenzen scheinbar zufälliger Ergebnisse erzeugen können, die in Wirklichkeit vollständig durch einen kürzeren Anfangswert, bekannt als Samenwert oder Schlüssel, bestimmt sind. Dadurch kann die gesamte scheinbar zufällige Sequenz reproduziert werden, wenn der Samenwert bekannt ist. Diese Art von Zufallszahlengenerator wird oft als Pseudorandom-Zahlengenerator bezeichnet. Diese Art von Generator ist normalerweise nicht blockierend, sodass sie nicht durch ein externes Ereignis ratenbegrenzt ist, was große Massendatenlesevorgänge ermöglicht.

Einige Systeme verwenden einen hybriden Ansatz, der Zufälligkeit aus natürlichen Quellen sammelt, wenn verfügbar, und auf kryptografisch sichere Pseudorandom-Zahlengeneratoren (CSPRNGs) zurückgreift, die periodisch neu gesät werden, wenn die gewünschte Leserate die Fähigkeit des natürlichen Sammelansatzes übersteigt, die Nachfrage zu decken. Dieser Ansatz vermeidet das ratenbegrenzte blockierende Verhalten von Zufallszahlengeneratoren, die auf langsameren und rein umweltbasierten Methoden basieren.

Während ein Pseudorandom-Zahlengenerator, der ausschließlich auf deterministischer Logik basiert, niemals als „wahre“ Zufallsquelle im reinsten Sinne des Wortes angesehen werden kann, sind sie in der Praxis im Allgemeinen ausreichend, selbst für anspruchsvolle sicherheitskritische Anwendungen. Sorgfältig entwickelte und implementierte Pseudorandom-Zahlengeneratoren können für sicherheitskritische kryptografische Zwecke zertifiziert werden, wie dies bei den Algorithmen Yarrow und Fortuna der Fall ist. Ersterer ist die Grundlage der /dev/random-Entropiequelle auf FreeBSD, AIX, macOS, NetBSD und anderen. OpenBSD verwendet einen Pseudorandom-Zahlenalgorithmus, der als arc4random bekannt ist.


Métodos de geração

Métodos físicos

Die frühesten Methoden zur Generierung von Zufallszahlen, wie Würfeln, Münzwurf und Roulette-Räder, werden auch heute noch verwendet, hauptsächlich in Spielen und beim Glücksspiel, da sie für die meisten Anwendungen in der Statistik und Kryptografie zu langsam sind.

Ein physikalischer Zufallszahlengenerator kann auf einem im Wesentlichen zufälligen atomaren oder subatomaren physikalischen Phänomen basieren, dessen Unvorhersehbarkeit auf die Gesetze der Quantenmechanik zurückgeführt werden kann. Entropiequellen umfassen radioaktiven Zerfall, thermisches Rauschen, Schussrauschen, Lawinenrauschen in Zener-Dioden, Taktabweichungen, die zeitlichen Bewegungen eines Festplatten-Lesekopfs und Funkrauschen. Physikalische Phänomene und Werkzeuge, die zu deren Messung verwendet werden, weisen jedoch im Allgemeinen Asymmetrien und systematische Verzerrungen auf, die ihre Ergebnisse nicht gleichmäßig zufällig machen. Ein Zufallsextraktor, wie eine kryptografische Hash-Funktion, kann verwendet werden, um eine gleichmäßige Verteilung von Bits aus einer nicht gleichmäßig zufälligen Quelle zu erreichen, allerdings mit einer niedrigeren Bitrate.

Em 2013, foi desenvolvido um protótipo de um gerador de números aleatórios de alta velocidade e em tempo real baseado num laser caótico.

Foram desenvolvidos vários métodos inventivos para recolher esta informação entrópica. Uma técnica consiste em aplicar uma função de hash a um fotograma de um fluxo de vídeo proveniente de uma fonte imprevisível. Lavarand utilizou esta técnica com imagens de várias lâmpadas de lava. O HotBits mediu o decaimento radioativo com tubos Geiger-Müller, enquanto o Random.org registou as flutuações na amplitude do ruído atmosférico com um rádio normal.

Computergestützte Methoden

A maioria dos números aleatórios gerados por computadores utiliza PRNGs, que são algoritmos que podem gerar automaticamente longas sequências de números com boas propriedades de aleatoriedade, mas eventualmente as sequências repetem-se (ou a utilização da memória cresce indefinidamente). Estes números aleatórios são suficientes em muitas situações, mas não são tão aleatórios como os números gerados a partir do ruído atmosférico eletromagnético utilizado como fonte de entropia. O conjunto de valores gerados por esses algoritmos é geralmente determinado por um número fixo chamado semente. Um dos PRNGs mais comuns é o gerador de congruência linear, que utiliza a relação de recorrência

Xn+1=(aXn+b)mod  mX_{n+1} = (aX_n + b) \mod mXn+1​=(aXn​+b)modm

verwendet, um Zahlen zu erzeugen, wobei aaa, bbb und mmm große ganze Zahlen sind, und Xn+1X_{n+1}Xn+1​ die nächste Zahl in einer Reihe von pseudorandom Zahlen ist. Die maximale Anzahl von Zahlen, die die Formel erzeugen kann, ist das Modul mmm. Die Rekurrenzbeziehung kann auf Matrizen erweitert werden, um viel längere Perioden und bessere statistische Eigenschaften zu haben. Um bestimmte nicht-zufällige Eigenschaften eines einzelnen linearen Kongruenzgenerators zu vermeiden, können mehrere solcher Zufallszahlengeneratoren mit leicht unterschiedlichen Werten des Multiplikatorkoeffizienten aaa parallel verwendet werden, wobei ein „Master“-Zufallszahlengenerator zwischen den verschiedenen Generatoren auswählt.

Um método simples para gerar manualmente números aleatórios é o chamado método do quadrado médio, proposto por John von Neumann. Embora seja fácil de implementar, o seu resultado é de fraca qualidade. Tem um período muito curto e graves deficiências, como o facto de a sequência de saída convergir quase sempre para zero. Uma inovação recente é a combinação do método dos quadrados médios com uma sequência de Weyl. Este método produz resultados de alta qualidade durante um longo período.

A maioria das linguagens de programação contém funções ou rotinas de biblioteca que fornecem geradores de números aleatórios. São frequentemente concebidos para fornecer um byte ou palavra aleatória ou um número de vírgula flutuante uniformemente distribuído entre 0 e 1.

Die Qualität, d.h. Zufälligkeit solcher Bibliotheksfunktionen, variiert stark, von völlig vorhersagbarer Ausgabe bis hin zu kryptografisch sicher. Der Standard-Zufallszahlengenerator in vielen Sprachen, einschließlich Python, Ruby, R, IDL und PHP, basiert auf dem Mersenne-Twister-Algorithmus und ist für kryptografische Zwecke nicht ausreichend, wie ausdrücklich in der Sprachdokumentation angegeben. Solche Bibliotheksfunktionen haben oft schlechte statistische Eigenschaften und einige wiederholen Muster nach nur Zehntausenden von Versuchen. Sie werden häufig mit der Echtzeituhr eines Computers als Samen initialisiert, da eine solche Uhr 64-Bit ist und in Nanosekunden misst, weit jenseits der Präzision einer Person. Diese Funktionen bieten möglicherweise genügend Zufälligkeit für bestimmte Aufgaben (z.B. Videospiele), sind jedoch ungeeignet, wenn hohe Qualität der Zufälligkeit erforderlich ist, wie in kryptografischen Anwendungen oder in der Statistik.

Hochwertigere Zufallszahlengeneratoren sind auf den meisten Betriebssystemen verfügbar; zum Beispiel /dev/random auf verschiedenen BSD-Derivaten, Linux, Mac OS X, IRIX und Solaris oder CryptGenRandom für Microsoft Windows. Die meisten Programmiersprachen, einschließlich der oben genannten, bieten eine Möglichkeit, auf diese höherwertigen Quellen zuzugreifen.

Gerado por pessoas

A geração de números aleatórios também pode ser realizada por seres humanos, recolhendo vários dados dos utilizadores finais e utilizando-os como fonte de aleatoriedade. No entanto, a maioria dos estudos conclui que os seres humanos apresentam um certo grau de não aleatoriedade quando tentam gerar uma sequência aleatória de, por exemplo, dígitos ou letras. Podem alternar entre escolhas com demasiada frequência em comparação com um bom aleatorizador; por isso, esta abordagem não é muito utilizada. Pela mesma razão que os humanos têm um desempenho fraco nesta tarefa, a geração humana de números aleatórios pode ser utilizada como uma ferramenta para obter informações sobre as funções cerebrais que não são acessíveis por outros meios.

Pós-processamento e controlos estatísticos

Auch bei einer plausiblen Zufallszahlquelle (vielleicht von einem quantenmechanisch basierten Hardware-Generator) erfordert es Sorgfalt, um völlig unvoreingenommene Zahlen zu erhalten. Das Verhalten dieser Generatoren ändert sich oft mit Temperatur, Versorgungsspannung, dem Alter des Geräts oder anderen äußeren Einflüssen.

Os números aleatórios gerados são por vezes sujeitos a testes estatísticos antes de serem utilizados para garantir que a fonte subjacente ainda funciona, e são depois pós-processados para melhorar as suas propriedades estatísticas. Um exemplo seria o gerador de números aleatórios por hardware TRNG9803, que utiliza uma medição de entropia como teste de hardware e depois pós-processa a sequência aleatória com uma cifra de fluxo de registo de deslocamento. É geralmente difícil utilizar testes estatísticos para validar os números aleatórios gerados. Wang e Nicol propuseram uma técnica de teste estatístico baseada na distância que é utilizada para identificar os pontos fracos de vários geradores de números aleatórios. Li e Wang propuseram um método para testar números aleatórios com base em fontes de entropia caóticas a laser utilizando propriedades do movimento browniano.

Statistische Tests werden auch verwendet, um Vertrauen zu schaffen, dass die nachbearbeitete endgültige Ausgabe eines Zufallszahlengenerators wirklich unvoreingenommen ist, wobei zahlreiche Testpakete für Zufälligkeit entwickelt wurden.

Outras considerações

Personalizar a distribuição

Distribuições uniformes

Die meisten Zufallszahlengeneratoren arbeiten nativ mit ganzen Zahlen oder einzelnen Bits, daher ist ein zusätzlicher Schritt erforderlich, um die „kanonische“ Gleichverteilung zwischen 0 und 1 zu erreichen. Die Implementierung ist nicht so trivial wie die Division der Ganzzahl durch ihren máximo möglichen Wert. Konkret:

  • Die Ganzzahl, die in die Transformation eingeht, muss genug Bits für die beabsichtigte Präzision bereitstellen.
  • Die Natur der Gleitkomma-Arithmetik selbst bedeutet, dass es mehr Präzision gibt, je näher die Zahl bei Null liegt. Diese zusätzliche Präzision wird aufgrund der schieren Anzahl der erforderlichen Bits normalerweise nicht verwendet.
  • Os erros de arredondamento durante a divisão podem distorcer o resultado. No pior dos casos, uma área supostamente excluída pode ser desenhada com números reais, contrariando as expectativas da matemática.

Der Mainstream-Algorithmus, der von OpenJDK, Rust und NumPy verwendet wird, wird in einem Vorschlag für die STL von C++ beschrieben. Er nutzt nicht die zusätzliche Präzision und leidet nur im letzten Bit an Verzerrungen aufgrund des Rundens auf die nächste gerade Zahl. Andere numerische Bedenken sind berechtigt, wenn diese „kanonische“ Gleichverteilung auf einen anderen Bereich verschoben wird. Eine vorgeschlagene Methode für die Swift-Programmiersprache behauptet, überall die volle Präzision zu nutzen.

Gleichmäßig verteilte ganze Zahlen werden häufig in Algorithmen wie dem Fisher-Yates-Shuffle verwendet. Auch hier kann eine naive Implementierung eine Modulo-Verzerrung in das Ergebnis einführen, daher müssen aufwendigere Algorithmen verwendet werden. Eine Methode, die fast nie eine Division durchführt, wurde 2018 von Daniel Lemire beschrieben, wobei der aktuelle Stand der Technik der arithmetischen Kodierungs-inspirierte „optimale Algorithmus“ von Stephen Canon von Apple Inc. no ano de 2021.

Die meisten 0- bis 1-RNGs schließen 0 ein, aber 1 aus, während andere beide einschließen oder ausschließen.

Outras distribuições

Wenn eine Quelle von gleichmäßig verteilten Zufallszahlen vorliegt, gibt es einige Methoden, um eine neue Zufallsquelle zu erstellen, die einer Wahrscheinlichkeitsdichtefunktion entspricht. Eine Methode namens Inversionsmethode beinhaltet das Integrieren bis zu einem Bereich, der größer oder igual der Zufallszahl ist (die für ordnungsgemäße Verteilungen zwischen 0 und 1 erzeugt werden sollte). Eine zweite Methode namens Akzeptanz-Ablehnungs-Methode beinhaltet die Wahl eines x- und y-Werts und das Ensaios, ob die Funktion von x größer ist als der y-Wert. Wenn dies der Fall ist, wird der x-Wert akzeptiert. Andernfalls wird der x-W