Sto cercando di generare una sequenza numerica in cui ogni numero è compreso tra 70 e 100 ci saranno numeri x nella sequenza e darà e media di y. Come sarebbe questo algoritmo?Generare una sequenza di numeri casuali per ottenere e media
risposta
ritengo è impossibile per loro di essere distribuiti uniformemente tra 70 e 100 e hanno una determinata media allo stesso tempo.
Quello che puoi fare è generare numeri casuali che hanno una data media e poi ridimensionarli per adattarli a [70, 100] (ma non saranno distribuiti uniformemente lì).
generare numeri casuali [0..1 (
calcolare la loro media
moltiplicare tutti loro per abbinare la richiesta media
se qualcuno di loro non va bene in [70, 100], ridimensiona tutti di nuovo riducendo la loro distanza da con lo stesso fattore (ciò non modifica la media)
x[i] = y + (x[i] - y)*scale
Si finirà con i numeri che sono tutti nell'intervallo [70, 100 (, ma saranno distribuiti uniformemente su un intervallo diverso (ma sovrapposto) centrato su y. Inoltre, questo approccio funziona solo con numeri reali/a virgola mobile. Se vuoi interi, hai un problema combinatorio tra le tue mani.
a destra, non possono essere distribuiti uniformemente. Se y era 72 per esempio allora i numeri tra 70 e 72 devono apparire molto più spesso dei numeri in 72 a 100 per poterli ancora mediamente a 72. – hackartist
che è ancora * possibile * avvenire in una distribuzione uniforme, ma * estremamente * improbabile. La distribuzione uniforme implica che ci sono * no * restrizioni su come vengono scelti i numeri. – Thilo
a proposito: vogliamo interi? Perché se lo facciamo, questo diventa un problema combinatorio. La mia soluzione si applica solo ai numeri reali. – Thilo
pitone esempio
import random
import time
x = 10
total = 0
avg = 0
random.seed(time.time())
for x in range(10):
total += random.randint(70,100)
avg = total /x
print "total: ", total
print "avg: ", avg
ma qui vuoi che "avg" esca da un numero fisso specificato in anticipo. – Thilo
Random r = new Random();
List<int> l = new List<int>();
Console.Write("Please enter amount of randoms ");
int num = (int)Console.Read();
for (int i = 0; i < num; i++)
{
l.Add(r.Next(0, 30) + 70);
}
//calculate avg
int sum = 0;
foreach (int i in l)
{
sum += i;
}
Console.Write("The average of " + num + " random numbers is " + (sum/num));
//to stop the program from closing automatically
Console.ReadKey();
no, parte della domanda era che la media deve essere specificata prima che la mano non venga trovata in seguito. – hackartist
Dang, ho letto male la domanda. Ignorare. –
- 1. Come generare una sequenza di numeri casuali ripetibile?
- 2. generare una sequenza di numeri naturali N
- 3. Come generare numeri casuali diversi?
- 4. utilizzando rand per generare numeri casuali
- 5. Come creare una sequenza lenta di numeri casuali in clojure
- 6. Numeri casuali e negativi
- 7. Come posso generare numeri casuali in Python?
- 8. Come generare numeri "casuali" ma anche "univoci"?
- 9. Come posso generare numeri casuali su iPhone?
- 10. Android - generare numeri casuali con nessuna ripetizione
- 11. Come posso generare numeri casuali in Dart?
- 12. Algoritmo per numeri casuali "lisci"
- 13. Numeri int64 e float64 casuali
- 14. Modo corretto per generare numeri casuali in Cython?
- 15. Riproducibilità di numeri pseudo casuali java su sistemi e versioni?
- 16. Haskell e numeri casuali
- 17. Generatore di numeri casuali che genera numeri interi per Java
- 18. Generazione di numeri casuali nell'obiettivo C per iPhone SDK
- 19. Cosa succede quando si copia un motore di numeri casuali e una distribuzione di numeri casuali?
- 20. Monade di stato, sequenze di numeri casuali e codice monadico
- 21. Come generare un elenco di numeri interi casuali ascendenti
- 22. Come generare numeri casuali di grandi dimensioni C
- 23. Ottenere numeri casuali da una lista di interi
- 24. Emacs macro per generare una sequenza?
- 25. C++ 11 numeri casuali
- 26. modo più rapido per generare bit casuali
- 27. C# probabilita 'e numeri casuali
- 28. Generazione contemporanea di numeri casuali
- 29. Numeri casuali con C#
- 30. Generatore di numeri casuali uniforme thread-safe
la media dei numeri deve essere esattamente y o solo quando viene eseguita più volte in media? – hackartist
Owe, forse mi manca capito la domanda :-) – 8bitwide
Non avrai una buona risposta finché non ci dirai la distribuzione. Questa è la parte difficile. –