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
+ve
y qué-ve
significa?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
N
es par, entonces los datos son solo la media más o menos la desviación estándar. Sin embargo, siN
es 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
n
es parμ+σ
.μ-σ
.Si
n
es 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]
dondeN
se 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 media0
empírica y una desviación estándar empírica1
.*
multiplica porσ
y+
agregaμ
, ambos tomados como entradas implícitas.tZN?x3G
Trata el caso especial de queN = 1
,σ = 0
por 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 losNaN
valores (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
n
distribución de elementos con mean0
y sdev1
:1/n
(es decir,1
elemento), salida(n-1)**0.5
1-1/n
(es decir,n-1
elementos), salida-(n-1)**(-0.5)
Esto se reescala a mean
m
y sdevs
mediante transformaciónx->m+s*x
. Molesto,n=1
da un error de división por cero para un valor inútil, por lo que lo eliminamos haciendo/(n-1%n)**.5
,1%n
dando y0
por lo demás.n==1
1
Puede pensar que
(n-1)**.5
se puede acortar~-n**.5
, pero la exponenciación ocurre primero.A
def
es un byte más largo.fuente
R,
836253 bytesSi
n=1
, entonces regresam
(yascale
que 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 sumam
al 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:n
lugar dert(n,n)
guardar 4 bytes. Y lascale
función probablemente podría ser útil.scale
cuá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