Je déconne juste en python depuis que j'apprends en ce moment.

Je vérifie la balise aléatoire NIST et analyse la sortie, supprime toutes les lettres et l'utilise comme graine pour générer des nombres aléatoires, je les ajoute à un tableau et enregistre le tableau dans un fichier mais j'obtiens une erreur.

import numpy as np
import array as arr
import random
import urllib.request
import urllib.parse
import re

url = 'https://beacon.nist.gov/beacon/2.0/pulse/last'
f = urllib.request.urlopen(url)
data_set = str(f.read().decode('utf-8'))

#print(data_set)
#print(subStr)
#print(type(subStr))

subStr = data_set


subStr = re.findall(r'"outputValue" : "(.+?)"',data_set)
print(subStr)
print(type(subStr))
subStr  = ''.join(subStr)
print(type(subStr))
NIST_SEED = ''.join(filter(str.isdigit, subStr))
print(NIST_SEED)
NIST_SEED = float(NIST_SEED)


numbers = arr.array('d', [])
#print(numbers)

i = 0


for i in range(10):
#    randon_number = random.random()
    random_number = random.seed(NIST_SEED)
    numbers.extend([random_number])
print(numbers)


np.savetxt('data.out', numbers)

Je reçois cette erreur, je ne comprends pas pourquoi je reçois cela puisque la "graine" est un flotteur. J'essaye de comprendre l'erreur.

  File "generating_data.py", line 38, in <module>
    numbers.extend([random_number]) 
TypeError: must be real number, not NoneType

ÉDITER:

Je suis un débutant absolu en python et je n'ai aucune idée du développement de logiciels. J'écris juste des trucs pour tester des choses et comprendre des concepts. L'idée derrière cela était d'essayer différentes choses et d'écrire un script qui génère une charge CPU afin que je puisse en apprendre davantage sur le multithreading ou un exemple. C'est peut-être une façon stupide de le faire et ça ne m'apprendra peut-être même rien d'idiot pour le moment.

0
dev 22 janv. 2020 à 13:15

1 réponse

Meilleure réponse
random_number = random.seed(NIST_SEED)
for i in range(10):
    random_number = random.random()
    numbers.extend([random_number])

Cela va ensemencer votre générateur de nombres aléatoires, puis utiliser random.random() pour générer les nombres aléatoires réels.

1
Jammy Dodger 22 janv. 2020 à 10:24