es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Podemos usar conjuntos para más aleatoriedad?

El módulo aleatorio de Python usa el tiempo como semilla (¿verdad?), lo cual es predecible, y los conjuntos se muestran en un orden aleatorio. Entonces, ¿si usamos conjuntos junto con los módulos aleatorio y tiempo, resultará en más aleatoriedad? ¿Y es menos predecible?
Un código como este:

import random
from typing import Union
import time


def get_random_item(iterator: Union[set, list, tuple], seed=None):
    iterator = set(iterator)
    if seed is None:
        seed = time.time() / 10 ** (len(str(int(time.time()))) - 1)
    seed = int(((seed ** seed ** random.random() ** random.random()) * (10 ** random.randrange(9, 16))) % len(iterator))
    return list(iterator)[seed]
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, el uso del módulo random de Python con el tipo de datos set y el módulo time puede resultar en más aleatoriedad que el uso de solo uno de ellos, y también aumentar la imprevisibilidad. El módulo time proporciona una fuente de aleatoriedad que es predecible, pero cuando se combina con el módulo random, que genera números pseudoaleatorios, puede agregar una capa adicional de aleatoriedad que es menos predecible. Además, como los conjuntos no tienen un orden definido, combinarlos con la aleatorización puede resultar en una gama más amplia de resultados posibles. El código proporcionado tiene como objetivo lograr esto utilizando el tipo de datos set y un algoritmo de generación de semillas personalizado basado en la semilla proporcionada o en el tiempo actual si no se proporciona ninguna.

Comments are closed.