El azar es imposible (al menos en los ordenadores) | El drama de LOS NÚMEROS ALEATORIOS
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
🔢 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.
💻 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
💡Pseudoaleatorios
💡Semilla
💡Lógica de retroalimentación lineal (LFSR)
💡Vacío cuántico
💡Fenómenos físicos
💡Hardware
💡Funciones lógicas
💡Sucesión
💡Algoritmo MWC 16
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
en montones de aplicaciones es
importantísimo tener números aleatorios
números elegidos al azar por supuesto
esto es importantísimo en los juegos de
azar plano claro en juegos de mesa en
juegos de rol donde un dado de 20 caras
puede decidir la suerte de tu mago del
nivel 15 pero también en otras muchas
situaciones como por ejemplo en
simulación de ciertos sistemas físicos o
en la seguridad informática en donde
existen claves que dependen de elegir un
número de aleatorio y hacer unas
operaciones con él no les prestamos
mucha atención pero es muy muy
importante poder generar números
aleatorios en un ordenador lo que ocurre
es que hay un problema tremendo resulta
que es imposible al menos sin ayuda
vamos a verlo
[Música]
los números aleatorios son números
elegidos al azar por ejemplo yo que sé
un número del 1 al 100 y que cada uno
tenga la misma probabilidad de aparecer
que cualquier otro medir y vaya pues no
es tan difícil te digo el primero que se
me pase por la cabeza y ya está no
aleatorio pues no pues está demostrado
que si preguntamos a miles de personas
por un número cualquiera del 1 al 100
enseguida aparecen patrones son mucho
más frecuentes los números acabados en 7
o en 3 la gente dice más a menudo
números impares que pares y casi nunca
dicen números acabados en 5 o en 0 la
gente no somos buenos generadores de
números aleatorios aquí tenéis por
ejemplo una encuesta a 8 mil 500
personas para que dijeran un número
cualquiera entre 0 y 10 casi la tercera
parte elige el 7 así que uno no puede
fiar la aleatoriedad a la gente es
demasiado importante por supuesto sí que
hay sistemas aleatorios lo más común son
dados de hecho hay máquinas que hacen
miles de tiradas de dados cómo está la
máquina dize o martín pero a nivel pro
lo mejor son sistemas cuánticos hay de
muchos tipos por ejemplo hay sistemas
que escuchan el vacío cuántico y
convierte en la aparición aleatoria de
partículas en números aquí tenéis una
página web que hace exactamente eso y te
dan números aleatorios o colores u otras
cosas ya pero no todo el mundo puede
tener un escuchador de vacío cuántico en
casa o en su empresa con su detector de
partículas y pasárselo al ordenador
cuando necesitas un número aleatorio
entonces qué hacemos como lo hacen los
ordenadores que ya me imagino a gente
ahí mordiéndose los labios
hiperventilando mientras avanza el vídeo
y pensando pues mi ordenador hace
números aleatorios porque yo programo en
c y en python y en otros tres lenguajes
y siempre hay una función que se llama
run y eso hace números aleatorios y yo
los uso en mis programas listo bueno un
segundito acá lo que los ordenadores
hacen se llaman números pseudo
aleatorios y te los voy a contar en un
segundito para que te relajes los
ordenadores son los menos aleatorio que
hay y por eso los queremos claro porque
queremos que hagan exactamente lo que se
espera de ellos lo que el programa dice
así que que como le pedimos a un
ordenador que elija
griffith le pita el chip los ordenadores
usan números pseudo aleatorios osea
parecidos a aleatorios y más baratos que
un escuchador de vacío cuántico los usan
todos los ordenadores incluso tu móvil
los genera sin la calculadora los
números pseudo aleatorios se generan a
partir de un número inicial que se llama
semilla que has de de algún lado y
un proceso matemático que vaya generando
una sucesión de números por ejemplo
podemos una semilla cualquiera el
77 por ejemplo multiplicarlo por un
número grande como el 70 mil 907 y el
resultado dividirlo por 534 con eso
obtenemos el 108 335 a éste le hacemos
lo mismo multiplicar por 70 mil 907 y
dividir por 534 y obtenemos el 13.000 60
0 59 y podríamos seguir así mis
operaciones para obtener la secuencia
son muy cutres además mi número siempre
va creciendo pero la idea es más o menos
así y no creéis que está tan alejada de
la realidad por ejemplo la antigua
función rand
de ibm usaba también las operaciones
multiplicar por 65 mil 539 y dividir por
2 mil 147 millones 483 mil 648 el otro
ingrediente de la sucesión de números
aleatorios es el número inicial lo que
se llama la semilla y eso se coge
normalmente de fenómenos físicos que el
ordenador pueda registrar como la hora
por ejemplo la cantidad de bits que
tenga de espacio libre el disco en ese
momento identificadores de procesos que
están ocurriendo dentro del ordenador o
una mezcla de todas esas cosas los
sistemas para generar semillas son
bastante buenos pero lo de las
sucesiones no es tan sencillo fue famoso
un error del algoritmo que usaban nada
menos que google con su navegador chrome
para registrar los nuevos usuarios de
una cierta aplicación les daban números
de usuario aleatorios en realidad pseudo
aleatorios de sabes utilizando un
algoritmo llamado mwc 16 a partir de
determinado momento el algoritmo empezó
a generar números repetidos y los
usuarios no quedaban registrados y eso
fue en 2016 no hacen nada cuando los
números se repiten o en malas obras
porque significa que nuestra sucesión
aleatoria ya va a ser siempre la misma
hoy en día en buena parte de generadores
de números aleatorios se utilizan una
técnica llamada el f linear feedback y
chiste que utiliza funciones lógicas
sencillas y por tanto es muy fácil de
programar y lo que es mejor es muy fácil
de implementar a nivel del hardware con
lo que sirve para generar números
aleatorios en aparatos pequeñitos como
en nuestra tarjeta que si la cosa es
bastante simple sorprendentemente
efectiva y se basa en lógica en unas
operaciones lógicas se trata de empezar
con una semilla en binario por ejemplo
una de 5 bits como ésta y lo que hacemos
es un proceso que en cada repetición
saca el último bit del número que
obtengamos ese último bit de cada paso
los van encadenando todos para producir
un número largo lo bueno es que si lo
hacemos bien la semilla no se repite en
mucho tiempo por ejemplo con 5 bits
podemos generar 31 números diferentes en
un orden que sólo dependerá de la
semilla inicial son 31 porque 2 elevado
a 5 es 32 y le quitamos 1 porque el que
tiene todo ceros no lo usamos el proceso
que hacemos es el siguiente extraemos el
bit de la derecha corremos los otros 4
la derecha y metemos a la izquierda un
nuevo bit y como se obtiene este vid
nuevo pues aplicando una operación
lógica a nuestros bits por ejemplo
podemos aplicar sol a los dos últimos
sólo vale 1 si son diferentes y ceros y
el resultado lo colocamos a la izquierda
y así tenemos de nuevo 5 bits y volvemos
a hacer lo mismo para esto podemos
aplicar diferentes funciones no un
simple short con lo que os podéis
imaginar que hay muchos tipos de lf s/r
diferentes hasta hay uno que se llama de
fibonacci
vamos con el ejemplo empezamos con 0 1 1
0 1 sacamos el número final ya tenemos
un bit y corremos los otros 4 a la
derecha y hacemos uso de los dos últimos
que como son 1 y 0 distintos resultados
1 con lo que nuestros 5 bits se han
convertido en 1 0 1 1 0 muy bien sacamos
ahora el último 0 que se une al 1 que
teníamos antes y repetimos el proceso
así vamos sacando unos y ceros que
podemos convertir en números en colores
en lo que queramos y que
estadísticamente se comportan como
aleatorios es casi como lanzar una
moneda esta es una forma buenísima de
conseguir números pseudo aleatorios y
que es muy usada su virtud viene
precisamente de que la semilla va a
tardar mucho en aparecer de nuevo por
ejemplo si nuestra semilla tiene 256
bits y hacemos este proceso mil veces
por segundo podemos estar generando
números sin repetir durante millones de
años muchas pero muchas veces la vida
del universo así que bueno ya veis que
con ingenio casi puede los ordenadores
no pueden ellos solitos generan números
aleatorios puros pero sí que pueden
hacer números pseudo aleatorios de mucha
calidad que casi parecen aleatorios y
eso usando funciones lógicas muy básicas
viva la lógica de mis entretelas bueno
para terminar os dejo una definición que
me encanta de sucesión aleatoria y que
se debe a android como core o un
matemático alucinante y que seguramente
os va a dejar pensando una sucesión es
aleatoria si es igual o más corta que
cualquier descripción de ella ahí te
queda eso hasta el próximo vídeo
[Música]
Browse More Related Video
5.0 / 5 (0 votes)