Si va a inventar algunas noticias falsas, querrá fabricar algunos datos para respaldarlas. Ya debe tener algunas conclusiones preconcebidas y desea algunas estadísticas para fortalecer el argumento de su lógica defectuosa. ¡Este desafío debería ayudarte!
Dados tres números de entrada:
- N - número de puntos de datos
- μ - media de puntos de datos
σ - desviación estándar de puntos de datos, donde μ y σ vienen dados por:
Genere una lista desordenada de números, 𝑥 i , que generaría los N , μ y σ dados .
No voy a ser demasiado exigente con los formatos de E / S, pero sí espero algún tipo de decimales para μ , σ y los puntos de datos de salida. Como mínimo, se deben admitir al menos 3 cifras significativas y una magnitud de al menos 1,000,000. Las carrozas IEEE están bien.
- N siempre será un número entero, donde 1 ≤ N ≤ 1,000
- μ puede ser cualquier número real
- σ siempre será ≥ 0
- los puntos de datos pueden ser cualquier número real
- si N es 1, entonces σ siempre será 0.
Tenga en cuenta que la mayoría de las entradas tendrán muchas salidas posibles. Solo necesita dar una salida válida. La salida puede ser determinista o no determinista.
Ejemplos
Input (N, μ, σ) -> Possible Output [list]
2, 0.5, 1.5 -> [1, 2]
5, 3, 1.414 -> [1, 2, 3, 4, 5]
3, 5, 2.160 -> [2, 6, 7]
3, 5, 2.160 -> [8, 4, 3]
1, 0, 0 -> [0]
fuente


+vey qué-vesignifica?Respuestas:
Pyth ,
443534 bytesPruébalo en línea! (El código anterior define una función.
:.*Se agrega en el enlace para invocar la función).Las matemáticas
Esto construye los datos simétricamente. Si
Nes par, entonces los datos son solo la media más o menos la desviación estándar. Sin embargo, siNes extraño, entonces abrimos una lata de gusanos, ya que la media tiene que estar presente para que los datos sean simétricos, por lo que las fluctuaciones deben multiplicarse por un cierto factor.Si
nes parμ+σ.μ-σ.Si
nes extrañoμ.μ+σ*sqrt(n/(n-1)).μ-σ*sqrt(n/(n-1)).fuente
MATL , 22 bytes
Gracias a @DigitalTrauma por una corrección.
Orden de entrada es:
N,σ,μ.Pruébalo en línea!
O vea una versión modificada que también calcule la media y la desviación estándar de los datos producidos, como una verificación.
Explicación
El código se divide en cuatro partes:
:genera la matriz[1 2 ... N]dondeNse toma como entrada implícita.t&1Zs/divide esos números por su desviación estándar empírica (calculada normalizando porN), ytYm-resta la media empírica de los valores resultantes. Esto asegura que los resultados tengan una media0empírica y una desviación estándar empírica1.*multiplica porσy+agregaμ, ambos tomados como entradas implícitas.tZN?x3GTrata el caso especial de queN = 1,σ = 0por lo que la salida debe serμ. Si este es realmente el caso, entonces la desviación estándar empírica calculada en el segundo paso fue0, la división dioinf, y la multiplicación porσen el tercer paso dioNaN. Entonces, lo que hace el código es: si la matriz obtenida consta de todos losNaNvalores (códigotZN?), elimínela (x) y presione la tercera entrada (3G), que esμ.fuente
Python , 50 bytes
Pruébalo en línea!
Utiliza la siguiente
ndistribución de elementos con mean0y sdev1:1/n(es decir,1elemento), salida(n-1)**0.51-1/n(es decir,n-1elementos), salida-(n-1)**(-0.5)Esto se reescala a mean
my sdevsmediante transformaciónx->m+s*x. Molesto,n=1da un error de división por cero para un valor inútil, por lo que lo eliminamos haciendo/(n-1%n)**.5,1%ndando y0por lo demás.n==11Puede pensar que
(n-1)**.5se puede acortar~-n**.5, pero la exponenciación ocurre primero.A
defes un byte más largo.fuente
R,
836253 bytesSi
n=1, entonces regresam(yascaleque regresaríaNA), de lo contrario, escala los datos[1,...,n]para tener una media 0 y una desviación estándar (muestra) 1, por lo que se multiplica pors*sqrt(1-1/n)para obtener la desviación estándar de la población correcta y se sumamal desplazamiento a la media apropiada. ¡Gracias a Dason por presentarme a la función de escala y eliminar esos bytes!Pruébalo en línea!
fuente
1:nlugar dert(n,n)guardar 4 bytes. Y lascalefunción probablemente podría ser útil.scalecuál es genial.Jalea , 20 bytes
Pruébalo en línea!
Programa completo que toma tres argumentos de línea de comando: n , μ , σ .
¿Cómo?
Crea valores de suelo (n / 2) equidistantes de la media y un valor en la media si n es impar de modo que la desviación estándar sea correcta ...
fuente