El azar es imposible (al menos en los ordenadores) | El drama de LOS NÚMEROS ALEATORIOS

Derivando
9 Mar 202207:53

Summary

TLDREl guion habla sobre la importancia de los números aleatorios en diversas situaciones, como juegos de azar, simulaciones físicas y seguridad informática. Se explica que los humanos no son buenos generadores de números aleatorios, y se introducen métodos más avanzados como sistemas cuánticos y técnicas de retroalimentación lineal. El vídeo también menciona el uso de semillas y procesos matemáticos para generar secuencias pseudoaleatorias, destacando su efectividad y la dificultad de distinguirlas de números verdaderamente aleatorios.

Takeaways

  • 🎲 Los números aleatorios son cruciales en juegos de azar, simulaciones físicas y seguridad informática.
  • 🧠 La generación de números aleatorios por parte del ser humano suele mostrar patrones y no es considerada verdaderamente aleatoria.
  • 🔮 Los sistemas físicos, como máquinas de dados o escuchadores de vacío cuántico, son métodos avanzados para generar números aleatorios.
  • 💻 Los ordenadores no pueden generar números aleatorios verdaderamente aleatorios, sino pseudoaleatorios, que se basan en algoritmos.
  • 🌱 Una 'semilla' es un número inicial utilizado para comenzar la generación de una secuencia de números pseudoaleatorios.
  • 🕒 Los eventos físicos, como la hora o el espacio libre en disco, pueden ser usados para obtener semillas para la generación de números aleatorios.
  • 🔄 Los errores en los algoritmos de generación de números pseudoaleatorios pueden llevar a repeticiones y problemas en aplicaciones, como el incidente con Chrome en 2016.
  • 🔄 La técnica de retroalimentación lineal (LFSR) es una forma común y efectiva de generar números pseudoaleatorios en hardware.
  • 🔄 El uso de funciones lógicas sencillas en LFSR permite generar secuencias que se comportan estadísticamente como aleatorias.
  • 🌐 Una definición interesante de sucesión aleatoria es que es igual o más corta que cualquier descripción de ella.

Q & A

  • ¿Por qué son importantes los números aleatorios en aplicaciones?

    -Los números aleatorios son cruciales en aplicaciones como juegos de azar, simulaciones de sistemas físicos y seguridad informática, ya que permiten procesos imprevisibles y aseguran la seguridad al generar claves que dependen de la elección de un número aleatorio.

  • ¿Cuál es el problema principal al generar números aleatorios en un ordenador?

    -El principal problema es que los ordenadores no pueden generar verdaderos números aleatorios, ya que su funcionamiento es predecible y basado en algoritmos, lo que lleva a la generación de números pseudoaleatorios en lugar de verdaderamente aleatorios.

  • ¿Qué es un generador de números pseudoaleatorios y cómo funciona?

    -Un generador de números pseudoaleatorios es un sistema que produce una secuencia de números que parecen aleatorios pero son en realidad calculados a partir de un algoritmo y una semilla inicial. Funciona generando una sucesión de números a partir de una semilla y un proceso matemático repetitivo.

  • ¿Cómo se elige la semilla para generar números pseudoaleatorios?

    -La semilla se puede obtener de fenómenos físicos que el ordenador puede registrar, como la hora, la cantidad de espacio libre en el disco, identificadores de procesos o una mezcla de estos factores.

  • ¿Qué es el error del algoritmo MWC 16 y cómo afectó a Google Chrome en 2016?

    -El error del algoritmo MWC 16 fue que comenzó a generar números repetidos, lo que llevó a que los usuarios de una aplicación no pudieran registrarse con números de usuario únicos. Esto sucedió en 2016 y causó un problema en la generación de identificadores únicos para usuarios nuevos en Google Chrome.

  • ¿Qué técnica se utiliza en la mayoría de los generadores de números aleatorios actuales?

    -La técnica utilizada en la mayoría de los generadores de números aleatorios actuales es el feedback lineal (LFSR), que emplea funciones lógicas simples y es fácil de programar y implementar a nivel de hardware.

  • ¿Cómo se describe una sucesión aleatoria según la definición de Android como Core?

    -Según Android como Core, una sucesión es aleatoria si es igual o más corta que cualquier descripción de ella, lo que implica que no se puede describir de forma más concisa que la sucesión en sí misma.

  • ¿Qué es el vacío cuántico y cómo se utiliza para generar números aleatorios?

    -El vacío cuántico es el estado de mayor vacío de partículas en la teoría cuántica. Se utiliza para generar números aleatorios escuchando el vacío y convirtiendo la aparición aleatoria de partículas en números.

  • ¿Por qué las personas no son buenos generadores de números aleatorios?

    -Las personas no son buenos generadores de números aleatorios porque tienden a seguir patrones inconscientes al elegir números, como preferir números impares o evitar terminaciones en 5 o 0, lo que hace que sus elecciones no sean verdaderamente aleatorias.

  • ¿Cómo se relacionan los números pseudoaleatorios con la seguridad informática?

    -Los números pseudoaleatorios son fundamentales en la seguridad informática, ya que se utilizan para generar claves y cifras que son esenciales para la encriptación y autenticación segura de datos.

Outlines

00:00

🔢 Importancia de los números aleatorios en diversas aplicaciones

El primer párrafo aborda la importancia de los números aleatorios en múltiples aplicaciones, como juegos de azar, juegos de mesa, simulación de sistemas físicos y seguridad informática. Se menciona que los humanos no son buenos generadores de números aleatorios, ya que tienden a seguir patrones al elegir números al azar. Se destaca la existencia de sistemas aleatorios físicos como dados y máquinas, así como sistemas cuánticos que escuchan el vacío cuántico para generar números aleatorios. Sin embargo, para la mayoría de las personas y aplicaciones, no es práctico tener acceso a tales sistemas, lo que lleva a la necesidad de métodos alternativos para generar números aleatorios en ordenadores.

05:01

💻 Generación de números pseudoaleatorios en ordenadores

El segundo párrafo explica cómo los ordenadores generan números pseudoaleatorios, que son números que parecen aleatorios pero son en realidad calculados a partir de una fórmula matemática. Se describe el proceso de usar una 'semilla' inicial y un algoritmo para generar una secuencia de números. Se menciona que los ordenadores utilizan métodos como el feedback lineal (LFSR) para generar estos números, que son efectivos y fáciles de implementar en hardware. El párrafo también incluye un ejemplo práctico de cómo funciona un LFSR y cómo se puede aplicar en dispositivos pequeños como tarjetas. Finalmente, se discute la importancia de la calidad de los números pseudoaleatorios y cómo su repetición puede ser un problema en aplicaciones como el registro de usuarios.

Mindmap

Keywords

💡Números aleatorios

Los números aleatorios son aquellos que se seleccionan de manera impredecible y con igual probabilidad. En el vídeo, se destaca la importancia de estos números en diversos campos como los juegos de azar, simulaciones físicas y la seguridad informática. Se menciona que los humanos no son buenos generadores de números aleatorios, ya que tienden a mostrar patrones en sus elecciones, como preferir números que terminan en 7 o 3.

💡Pseudoaleatorios

Los números pseudoaleatorios son secuencias de números que parecen aleatorios pero son en realidad el resultado de un algoritmo determinista. En el vídeo, se explica que los ordenadores utilizan números pseudoaleatorios, ya que es imposible para ellos generar verdaderos números aleatorios. Estos números se generan a partir de una 'semilla' y un proceso matemático.

💡Semilla

La semilla es el punto de partida o valor inicial que se utiliza para generar una secuencia de números pseudoaleatorios. En el vídeo, se menciona que la semilla puede ser obtenida de fenómenos físicos como la hora o el espacio libre en el disco, y es crucial para la variedad de la secuencia generada.

💡Lógica de retroalimentación lineal (LFSR)

La Lógica de Retroalimentación Lineal es una técnica utilizada para generar números pseudoaleatorios en hardware. Se basa en operaciones lógicas simples que se repiten para producir una secuencia de bits. En el vídeo, se describe cómo se usa una semilla en binario y se aplica una función lógica para obtener una nueva secuencia de bits en cada iteración.

💡Vacío cuántico

El vacío cuántico es un concepto de la física que se refiere al espacio donde no hay partículas materivas, pero donde pueden ocurrir fenómenos cuánticos. En el vídeo, se menciona que algunos sistemas de generación de números aleatorios escuchan el vacío cuántico para convertir la aparición aleatoria de partículas en números.

💡Fenómenos físicos

Los fenómenos físicos son eventos o procesos que pueden ser observados y medidos en el mundo natural. En el contexto del vídeo, se utilizan fenómenos físicos como la hora o el espacio en disco para generar semillas para números pseudoaleatorios, ya que son impredecibles y pueden ser registrados por un ordenador.

💡Hardware

El hardware hace referencia a los componentes físicos de una computadora o dispositivo electrónico. En el vídeo, se menciona la facilidad de implementar la generación de números pseudoaleatorios a nivel de hardware usando técnicas como la LFSR, lo que permite generar estos números en dispositivos pequeños y eficientes.

💡Funciones lógicas

Las funciones lógicas son operaciones matemáticas básicas que se utilizan en la electrónica y la informática para manipular datos binarios. En el vídeo, se explica cómo las funciones lógicas simples son fundamentales para la generación de números pseudoaleatorios, ya que se aplican en la LFSR para producir nuevas secuencias de bits.

💡Sucesión

Una sucesión en matemáticas es una secuencia ordenada de números. En el vídeo, se discute cómo una sucesión aleatoria es aquella que no puede ser predicha y es tan corta o más corta que cualquier descripción de ella, lo que es crucial para la generación de números pseudoaleatorios.

💡Algoritmo MWC 16

El algoritmo MWC 16 es un método específico para generar números pseudoaleatorios. Se menciona en el vídeo como un ejemplo de un algoritmo que fue utilizado en Google Chrome y que causó problemas al comenzar a generar números repetidos, lo que demuestra la importancia de la calidad en la generación de números pseudoaleatorios.

Highlights

Las aplicaciones en juegos de azar y sistemas físicos requieren números aleatorios para su funcionamiento adecuado.

Es imposible para las personas generar números aleatorios de manera efectiva, ya que tienden a mostrar patrones.

Los números aleatorios son fundamentales en la seguridad informática, especialmente en la generación de claves.

Los ordenadores utilizan números pseudoaleatorios, que son similares pero más baratos que los generadores cuánticos.

Los números pseudoaleatorios se generan a partir de una semilla y un proceso matemático.

Las semillas para la generación de números aleatorios pueden ser obtenidas de fenómenos físicos como la hora o el espacio en disco.

El algoritmo MWC 16, utilizado por Google Chrome, tuvo un error que generaba números repetidos para los usuarios.

Los generadores de números aleatorios modernos usan técnicas de retroalimentación lineal para mejorar la calidad de los números.

La técnica LFSR (Retroalimentación de retroceso de línea) es una forma simple y efectiva de generar números pseudoaleatorios.

La semilla inicial es crucial en la generación de secuencias aleatorias, y puede tardar mucho tiempo en repetirse.

La definición de una sucesión aleatoria según Android es que es igual o más corta que cualquier descripción de ella.

Los números pseudoaleatorios generados por ordenadores son de alta calidad y casi indistinguibles de los verdaderamente aleatorios.

Los sistemas cuánticos son una opción avanzada para la generación de números aleatorios, aunque no están disponibles para todos.

Los errores en la generación de números aleatorios pueden tener consecuencias graves, como en el caso de la registración de usuarios en Chrome.

La retroalimentación lineal es una técnica utilizada en hardware para generar números aleatorios en dispositivos pequeños.

La operación lógica es fundamental en la generación de números pseudoaleatorios a través de la técnica LFSR.

La teoría de la complejidad computacional de las sucesiones aleatorias sugiere que no pueden ser previstas o descritas de manera más corta que la secuencia en sí.

Transcripts

play00:00

en montones de aplicaciones es

play00:01

importantísimo tener números aleatorios

play00:03

números elegidos al azar por supuesto

play00:06

esto es importantísimo en los juegos de

play00:07

azar plano claro en juegos de mesa en

play00:10

juegos de rol donde un dado de 20 caras

play00:12

puede decidir la suerte de tu mago del

play00:14

nivel 15 pero también en otras muchas

play00:16

situaciones como por ejemplo en

play00:18

simulación de ciertos sistemas físicos o

play00:20

en la seguridad informática en donde

play00:22

existen claves que dependen de elegir un

play00:24

número de aleatorio y hacer unas

play00:26

operaciones con él no les prestamos

play00:28

mucha atención pero es muy muy

play00:30

importante poder generar números

play00:32

aleatorios en un ordenador lo que ocurre

play00:34

es que hay un problema tremendo resulta

play00:36

que es imposible al menos sin ayuda

play00:38

vamos a verlo

play00:40

[Música]

play00:45

los números aleatorios son números

play00:46

elegidos al azar por ejemplo yo que sé

play00:48

un número del 1 al 100 y que cada uno

play00:50

tenga la misma probabilidad de aparecer

play00:52

que cualquier otro medir y vaya pues no

play00:54

es tan difícil te digo el primero que se

play00:55

me pase por la cabeza y ya está no

play00:57

aleatorio pues no pues está demostrado

play01:00

que si preguntamos a miles de personas

play01:01

por un número cualquiera del 1 al 100

play01:03

enseguida aparecen patrones son mucho

play01:06

más frecuentes los números acabados en 7

play01:08

o en 3 la gente dice más a menudo

play01:10

números impares que pares y casi nunca

play01:13

dicen números acabados en 5 o en 0 la

play01:15

gente no somos buenos generadores de

play01:17

números aleatorios aquí tenéis por

play01:19

ejemplo una encuesta a 8 mil 500

play01:21

personas para que dijeran un número

play01:23

cualquiera entre 0 y 10 casi la tercera

play01:25

parte elige el 7 así que uno no puede

play01:29

fiar la aleatoriedad a la gente es

play01:30

demasiado importante por supuesto sí que

play01:33

hay sistemas aleatorios lo más común son

play01:35

dados de hecho hay máquinas que hacen

play01:37

miles de tiradas de dados cómo está la

play01:39

máquina dize o martín pero a nivel pro

play01:42

lo mejor son sistemas cuánticos hay de

play01:44

muchos tipos por ejemplo hay sistemas

play01:46

que escuchan el vacío cuántico y

play01:48

convierte en la aparición aleatoria de

play01:50

partículas en números aquí tenéis una

play01:52

página web que hace exactamente eso y te

play01:54

dan números aleatorios o colores u otras

play01:56

cosas ya pero no todo el mundo puede

play01:59

tener un escuchador de vacío cuántico en

play02:01

casa o en su empresa con su detector de

play02:04

partículas y pasárselo al ordenador

play02:06

cuando necesitas un número aleatorio

play02:07

entonces qué hacemos como lo hacen los

play02:10

ordenadores que ya me imagino a gente

play02:11

ahí mordiéndose los labios

play02:14

hiperventilando mientras avanza el vídeo

play02:16

y pensando pues mi ordenador hace

play02:18

números aleatorios porque yo programo en

play02:21

c y en python y en otros tres lenguajes

play02:24

y siempre hay una función que se llama

play02:26

run y eso hace números aleatorios y yo

play02:28

los uso en mis programas listo bueno un

play02:31

segundito acá lo que los ordenadores

play02:33

hacen se llaman números pseudo

play02:35

aleatorios y te los voy a contar en un

play02:37

segundito para que te relajes los

play02:39

ordenadores son los menos aleatorio que

play02:41

hay y por eso los queremos claro porque

play02:43

queremos que hagan exactamente lo que se

play02:45

espera de ellos lo que el programa dice

play02:47

así que que como le pedimos a un

play02:50

ordenador que elija

play02:52

griffith le pita el chip los ordenadores

play02:54

usan números pseudo aleatorios osea

play02:57

parecidos a aleatorios y más baratos que

play03:00

un escuchador de vacío cuántico los usan

play03:02

todos los ordenadores incluso tu móvil

play03:04

los genera sin la calculadora los

play03:05

números pseudo aleatorios se generan a

play03:07

partir de un número inicial que se llama

play03:09

semilla que has de de algún lado y

play03:11

un proceso matemático que vaya generando

play03:13

una sucesión de números por ejemplo

play03:15

podemos una semilla cualquiera el

play03:16

77 por ejemplo multiplicarlo por un

play03:19

número grande como el 70 mil 907 y el

play03:21

resultado dividirlo por 534 con eso

play03:24

obtenemos el 108 335 a éste le hacemos

play03:27

lo mismo multiplicar por 70 mil 907 y

play03:30

dividir por 534 y obtenemos el 13.000 60

play03:33

0 59 y podríamos seguir así mis

play03:36

operaciones para obtener la secuencia

play03:37

son muy cutres además mi número siempre

play03:40

va creciendo pero la idea es más o menos

play03:42

así y no creéis que está tan alejada de

play03:44

la realidad por ejemplo la antigua

play03:46

función rand

play03:47

de ibm usaba también las operaciones

play03:49

multiplicar por 65 mil 539 y dividir por

play03:54

2 mil 147 millones 483 mil 648 el otro

play03:58

ingrediente de la sucesión de números

play03:59

aleatorios es el número inicial lo que

play04:01

se llama la semilla y eso se coge

play04:03

normalmente de fenómenos físicos que el

play04:05

ordenador pueda registrar como la hora

play04:08

por ejemplo la cantidad de bits que

play04:10

tenga de espacio libre el disco en ese

play04:12

momento identificadores de procesos que

play04:14

están ocurriendo dentro del ordenador o

play04:17

una mezcla de todas esas cosas los

play04:19

sistemas para generar semillas son

play04:20

bastante buenos pero lo de las

play04:21

sucesiones no es tan sencillo fue famoso

play04:24

un error del algoritmo que usaban nada

play04:26

menos que google con su navegador chrome

play04:28

para registrar los nuevos usuarios de

play04:30

una cierta aplicación les daban números

play04:32

de usuario aleatorios en realidad pseudo

play04:34

aleatorios de sabes utilizando un

play04:36

algoritmo llamado mwc 16 a partir de

play04:40

determinado momento el algoritmo empezó

play04:42

a generar números repetidos y los

play04:44

usuarios no quedaban registrados y eso

play04:46

fue en 2016 no hacen nada cuando los

play04:48

números se repiten o en malas obras

play04:50

porque significa que nuestra sucesión

play04:52

aleatoria ya va a ser siempre la misma

play04:54

hoy en día en buena parte de generadores

play04:56

de números aleatorios se utilizan una

play04:57

técnica llamada el f linear feedback y

play05:01

chiste que utiliza funciones lógicas

play05:03

sencillas y por tanto es muy fácil de

play05:06

programar y lo que es mejor es muy fácil

play05:08

de implementar a nivel del hardware con

play05:10

lo que sirve para generar números

play05:11

aleatorios en aparatos pequeñitos como

play05:13

en nuestra tarjeta que si la cosa es

play05:15

bastante simple sorprendentemente

play05:16

efectiva y se basa en lógica en unas

play05:19

operaciones lógicas se trata de empezar

play05:20

con una semilla en binario por ejemplo

play05:22

una de 5 bits como ésta y lo que hacemos

play05:24

es un proceso que en cada repetición

play05:27

saca el último bit del número que

play05:29

obtengamos ese último bit de cada paso

play05:30

los van encadenando todos para producir

play05:32

un número largo lo bueno es que si lo

play05:34

hacemos bien la semilla no se repite en

play05:36

mucho tiempo por ejemplo con 5 bits

play05:38

podemos generar 31 números diferentes en

play05:40

un orden que sólo dependerá de la

play05:42

semilla inicial son 31 porque 2 elevado

play05:45

a 5 es 32 y le quitamos 1 porque el que

play05:47

tiene todo ceros no lo usamos el proceso

play05:49

que hacemos es el siguiente extraemos el

play05:51

bit de la derecha corremos los otros 4

play05:53

la derecha y metemos a la izquierda un

play05:55

nuevo bit y como se obtiene este vid

play05:57

nuevo pues aplicando una operación

play05:59

lógica a nuestros bits por ejemplo

play06:01

podemos aplicar sol a los dos últimos

play06:03

sólo vale 1 si son diferentes y ceros y

play06:06

el resultado lo colocamos a la izquierda

play06:07

y así tenemos de nuevo 5 bits y volvemos

play06:09

a hacer lo mismo para esto podemos

play06:11

aplicar diferentes funciones no un

play06:13

simple short con lo que os podéis

play06:14

imaginar que hay muchos tipos de lf s/r

play06:17

diferentes hasta hay uno que se llama de

play06:19

fibonacci

play06:20

vamos con el ejemplo empezamos con 0 1 1

play06:22

0 1 sacamos el número final ya tenemos

play06:24

un bit y corremos los otros 4 a la

play06:26

derecha y hacemos uso de los dos últimos

play06:27

que como son 1 y 0 distintos resultados

play06:30

1 con lo que nuestros 5 bits se han

play06:32

convertido en 1 0 1 1 0 muy bien sacamos

play06:35

ahora el último 0 que se une al 1 que

play06:37

teníamos antes y repetimos el proceso

play06:39

así vamos sacando unos y ceros que

play06:41

podemos convertir en números en colores

play06:43

en lo que queramos y que

play06:44

estadísticamente se comportan como

play06:46

aleatorios es casi como lanzar una

play06:48

moneda esta es una forma buenísima de

play06:50

conseguir números pseudo aleatorios y

play06:52

que es muy usada su virtud viene

play06:54

precisamente de que la semilla va a

play06:55

tardar mucho en aparecer de nuevo por

play06:57

ejemplo si nuestra semilla tiene 256

play07:00

bits y hacemos este proceso mil veces

play07:03

por segundo podemos estar generando

play07:04

números sin repetir durante millones de

play07:07

años muchas pero muchas veces la vida

play07:09

del universo así que bueno ya veis que

play07:11

con ingenio casi puede los ordenadores

play07:13

no pueden ellos solitos generan números

play07:15

aleatorios puros pero sí que pueden

play07:17

hacer números pseudo aleatorios de mucha

play07:19

calidad que casi parecen aleatorios y

play07:21

eso usando funciones lógicas muy básicas

play07:24

viva la lógica de mis entretelas bueno

play07:27

para terminar os dejo una definición que

play07:29

me encanta de sucesión aleatoria y que

play07:31

se debe a android como core o un

play07:33

matemático alucinante y que seguramente

play07:35

os va a dejar pensando una sucesión es

play07:37

aleatoria si es igual o más corta que

play07:41

cualquier descripción de ella ahí te

play07:43

queda eso hasta el próximo vídeo

play07:47

[Música]

Rate This

5.0 / 5 (0 votes)

Ähnliche Tags
Generación de números aleatoriosSeguridad informáticaJuegos de azarFísica cuánticaProgramaciónPseudoaleatoriosHardwareLógica binariaSistemas físicosTecnología
Benötigen Sie eine Zusammenfassung auf Englisch?