Reto
Dada la entrada de un número entero, (donde 0 < n < 50 ), genera la gráfica de y = R e ( ( - n ) x ) de x = - 3 a x = 3 inclusive.
Donde es la parte real del número complejo p .
Tenga en cuenta que
Salida
La salida puede tener la forma que desee (por ejemplo, una imagen o una ventana, etc.). El arte ASCII no está permitido.
El gráfico no necesita tener ejes (para permitir que los idiomas sin funciones gráficas integradas compitan).
Si se emite una imagen, cada lado debe tener más de 500 píxeles. Del mismo modo, la trama debe llenar la imagen lo mejor que pueda.
El intervalo mínimo entre parcelas es 0.05.
Se permiten gráficos vectoriales.
Ejemplos
Para una entrada de 2
:
Para una entrada de 1
:
Debe poner sus resultados correspondientes en su respuesta (n = 1 yn = 2).
Victorioso
El código más corto en bytes gana.
fuente
ASCII art is disallowed.
(ಥ﹏ಥ)Respuestas:
MATL,
22 1816 bytes¡Gracias @LuisMendo por -2 bytes adicionales!
Pruébalo en matl.suever.net
fuente
TI-Basic,
2621 bytesSalida para N = 2:
fuente
Bash + Gnuplot,
5645 bytes(-11 bytes gracias a Noiralef!)
Guarda el gráfico resultante como una
png
imagen llamadaA
en el directorio de trabajo actual.Salidas de ejemplo
Para n = 1 :
Para n = 2 :
fuente
gnuplot -e "se t png;p[-3:3]real((-2)**x)">A
Python 3 con matplotlib ,
10372 bytes-12 bytes gracias a DSM (se instala un módulo junto con
matplotlib
llamadopylab
con la funcionalidad necesaria "haciendo que Python en una respuesta se parezca más a Matlab" - ¡extraño, pero cierto!)-18 más como resultado (¡pylab también tiene muchas funciones numpy!)
- 1 byte gracias a Ajasja (reemplazando
arange(-60,61)/20+0j
porarange(121)/20-3+0j
)n = 2,1
fuente
from matplotlib.pyplot import*
si inicia ipython con el indicador --pylab --matplotlib?%pylab
que también te da numpy y si estás en un cuaderno no necesitas un show al final :)Mathematica, 41 bytes
La salida se ve exactamente como se muestra en el desafío, excepto por la fuente de los números (que sospecho que se creó con Wolfram Alpha).
fuente
MATLAB,
3530 bytesEsto define una función anónima. La salida se realiza a través de una nueva ventana con una salida de gráfico vectorial redimensionable. MATLAB
plot
ignora automáticamente la parte imaginaria de las coordenadas y siempre que proporcione las coordenadas x correspondientes. La siguiente salida es paran=3
.fuente
R, 30 bytes
n
= 1n
= 2fuente
x=seq(-3,3,.05);plot(x,Re((0i-n)^x))
R, 29 bytes
n
se proporciona a través de stdin. Resultado para n = 1:Y para n = 2:
fuente
n
como las otras respuestas y eliminar cinco caracteres de tu respuesta? De todos modos, respuesta loca. Siempre olvidocurve
.n
. Las respuestas matlab, matl, TI-Basic y Mathica toman la entrada como stdin (por lo que yo entiendo), mientras que las respuestas python y VBA crean una función. Incluso si está permitido, es solo una cuestión de gusto personal: simplemente no me gusta predefinir variables como una forma de entrada.Excel VBA,
168160147138 bytes (células como píxeles a 100x escala)Guardado 8 bytes gracias a KyleKanos
Guardado 22 bytes gracias a Taylor Scott
Formateado, se ve así:
Dato curioso: VBA no tiene incorporado un
pi
variable de modo que tenemos que evaluarla como una función de hoja de cálculo donde se hace existir.n = 1 n = 2
Empecé con una versión gráfica a 193 bytes, pero hice obtener resultados más bonitas.
n = 1 n = 2
fuente
(-n)^x
lugar de codificar pi?atn(1)*4
para pi?MATLAB,
3533 bytes¡Gracias por @flawr por eliminar 2 bytes!
Esto define una función anónima. Para llamarlo con entrada
2
, useans(2)
(o asigne la función a una variable comof
y luego usef(2)
).La salida es gráficos vectoriales (ventana redimensionable). El intervalo de muestreo en el eje x se determina automáticamente por el
ezplot
función, pero parece ser más que suficiente.Se genera una advertencia en STDERR porque la función pasada a
ezplot
(@(x)real((-n)^x)
) no está vectorizada, pero se genera el gráfico.Ejemplo para
n = 2
:fuente
ezplot = la-z-plot
: D (sigo olvidándome de este ...)ezplot
gustarle. Lamentablemente, no se puede decirfplot
lo mismo, por lo que no se puede guardar ningún byte allí.Cuaderno Jupyter y Python 3; 53 bytes
Tres bytes guardados gracias a @Jonathan Allan.
fuente
x=arange(-60,61)/20
para solucionar los problemas destacados por DSM a un costo de 2 bytes. Si agrega0j
aarange
esto, se puede usar para cambiar aplot(x,(-n)**x)
guardar 4.arange(121)
!PostScript encapsulado; 232 bytes
Ahora, dado que esta es una imagen vectorial en sí misma ...
fuente
TikZ + PGFPlots , 175 bytes
Compilar con, por ejemplo ,
latexmk -cd -f -pdf in.tex
para una salida en pdf. Durante la compilación, se solicita al usuarion
.Resultados de muestra (convertidos a png) para n = 1 yn = 2:
fuente
Math.JS Grapher , 20 bytes
Por pura casualidad, esta utilidad gráfica es TC (en su mayor parte, los bucles infinitos simplemente la bloquean), y por naturaleza, su salida principal son los gráficos.
Cómo funciona
r(n)=
asigna una funciónr
que lleva el argumenton
a la expresiónf(x)=re((-n)^x)
.re((-n)^x)
es prácticamente letra por letra la descripción del desafío. Pero esto asigna la funciónf(x)
a esto, que el graficador genera implícitamente como un gráfico lineal.Cómo probarlo
Puede usar este sitio, marcar esa función allí y luego llamarlo con
r(input)
.Salida
fuente
J ,
3736 bytesGracias a mi colega Marshall por su orientación. -2 gracias a FrownyFrog.
Función de prefijo tácito anónimo.
fuente
20%~i:@60
puede seri:@3j120
.Dyalog APL, 41 bytes
Cómo funciona:
El comando de usuario
]chart
, en este caso, toma dos argumentos vectorialesx
yy
y parcelas de los gráficos:porn = 1 :
porn = 2 :
fuente
SmileBASIC, 82 bytes
El gráfico llena toda la pantalla, incluso cuando N es menor que 1.
Cuando N es mayor que 1, puede escalar Y para que esté entre -1 y 1 dividiéndolo entre
n^3
. Ya lo estoy haciendon^x
, yn^x / n^3
puedo simplificarlon^(x-3)
. Sin embargo, cuando N es menor que 1, tengo que dividir Y entren^-3
. Esto es equivalente an^(x+3)
.Puedo usar
n^(x-3*sign(n-1))
para usar-3
ifn>1
, y+3
ifn<1
Imágenes próximamente
fuente
Excel VBA, 133 bytes
Secuencia de comandos de ventana inmediata que toma entrada
[A1]
y genera unChart
objeto alSheet1
objeto.Sin golf
Sub
Versión de rutina completa . I / O no ha cambiado.Salida
Donde entrada,n = 1
Donde entrada,n = 3
fuente
Julia 0.6 con Plots.jl, 46 bytes
¡Esto necesitaba una representación de Julia!
Sin embargo, no es mucho para jugar golf aquí, excepto (ab) que usa la sobrecarga del operador para guardar bytes en la definición de la función, y el uso
0im-n
para hacer que el número de entrada sea complejo donde generalmente podría haberlo usadoComplex(n)
. Eso es necesario porque en Julia, por razones de estabilidad de tipo , el^
operador devuelve resultados complejos solo cuando la entrada es en sí misma compleja. Así que aquí lo hacemos un número complejo agregando0im
ie. 0i.Una cosa interesante sobre el paquete Plots.jl es que elige automáticamente el backend para usar en función de los paquetes de trazado que haya instalado y desde dónde ejecuta el
plot
comando. La trama anterior se creó con el backend GR , pero si no tuviera eso instalado (o si ejecuté explícitamente unplotly()
comando como lo hice para esto), habría utilizado el backend Plotly más interactivo y generaría esto (que parece un un poquito más agradable IMO):Incluso hay un backend de UnicodePlots , para imprimir un diagrama en el terminal (o guardarlo en un archivo de texto) usando caracteres Unicode y códigos de color. Sin embargo, SE sigue estropeando la alineación de la trama si intento pegarla directamente, así que aquí hay una captura de pantalla del terminal:
PD: la fórmula alternativa,R e ( ( - n )X) = nXc o s ( π x ) , sale a la misma longitud:
fuente