número aleatório com a proporção de 1: 2
-
04-07-2019 - |
Pergunta
Eu tenho que gerar dois conjuntos aleatórios de matrizes Cada um contendo de 3 algarismos variando entre 2 - 10
assim
matriz 1: 994878129121
matriz 2: 272794378212
Os números em ambas as matrizes tem que ser maior do que 100 e menos de 999
MAS
a média para ambas as matrizes tem que ser na proporção de 1: 2 ou 2: 3 o que sempre restrição das entradas do usuário
minhas habilidades matemáticas são do tipo limitado de forma alguma idéia de como posso fazer isso acontecer?
Solução
A fim de fazer isso, você tem que saber quantos números estão em cada lista. Estou assumindo a partir de seu exemplo, que há quatro números em cada um.
- Preencha a primeira lista com quatro números aleatórios.
- Calcule a média da primeira lista.
- Multiplicar a média por 2 ou por 3/2, o que a entrada de utilizador. Esta é a média exigida da segunda lista.
- multiplicar por 4. Este é o total necessário da segunda lista.
- Gerar 3 números aleatórios.
- Subtrair o total dos três números no passo 5 do total na etapa 4. Este é o quarto número para a segunda lista.
- Se o número na etapa 6 não está na faixa correta, comece a partir do passo 5.
Note que o último número na segunda lista não é verdadeiramente aleatório, uma vez que é baseado em outros valores na lista.
Outras dicas
Você tem um conjunto de números aleatórios, s1.
s1= [ random.randint(100,999) for i in range(n) ]
Por outro conjunto, s2, para ter uma média diferente é simplesmente tem que ter uma gama diferente. Ou você seleciona valores aleatoriamente a partir de uma gama diferente, ou você filtrar valores aleatórios para obter uma gama diferente.
Não importa quantas aleatórios números que você selecione a partir da faixa de 100 a 999, a média é sempre apenas sobre 550. As chances de ser um valor diferente são exatamente as probabilidades de distribuição normal em ambos os lados a média.
Você não pode ter uma média radicalmente diferente com os valores selecionados no mesmo intervalo.