Dada una entrada, imprima todos los exponentes donde la base y la potencia suman a la entrada

20

Este es mi primer desafío en este sitio.

El desafío es tomar un número entero de entrada norte , que será positivo, e imprimir, en orden ascendente ( 1 a norte , incluido n ), la salida de yo(norte-yo) (donde yo es el número entero actual).

Ejemplo

Dada la entrada 5, el programa imprimirá:

1  
8  
9  
4  
1  

14 4 es 1 y1+4 4=5 5
23 es 8 y2+3=5 5
32 es 9 y3+2=5 5
4 41 es 4 y4 4+1=5 5
5 50 0 es 1 y5 5+0 0=5 5

Entrada y salida

La entrada tendrá la forma de un entero positivo. La salida será una lista de números, delimitada por comas o nuevas líneas.

Este es el , por lo que gana el código más corto.

Encarnación de la ignorancia
fuente
55
se deben omitir los detalles de coma / nueva línea, es una práctica normal aquí permitir que la salida de listas esté en cualquier formato conveniente, incluso como un objeto de lista / matriz devuelto por una función
Sparr
3
¿La entrada siempre es mayor que 0 o tenemos que lidiar con 0 y negativos?
Veskah
Los aportes siempre serán positivos
Encarnación de la ignorancia
66
Dos respuestas igualmente cortas no importan. Si tiene ganas de aceptar una respuesta, elija la primera publicada. Sin embargo me fuertemente recomiendan esperar al menos unos días, y sugeriría que nunca aceptar una respuesta (para animar a más presentaciones).
Οurous
2
¿No debería ser el título "Dado un número entero , imprima todas las potencias obtenidas con una base y un exponente que sumen a la entrada"?
Nicola Sap

Respuestas:

6

APL (Dyalog Unicode) , 8 5 bytes

⍳*⊢-⍳

Pruébalo en línea!

Prefijo anónimo función tácita. TIO prueba para el rango [1..10].

Gracias @lirtosiast por 3 bytes.

Cómo:

⍳*⊢-⍳  Tacit function
      Range. n generates the vector [1..n].
  ⊢-  Subtracted from the argument. The vector is now [n-1,n-2,...,0]
⍳*     Exponentiate using the range [1..n] as base. The result is the vector
       [1^(n-1), 2^(n-2), 3^(n-3),...]
J. Sallé
fuente
2
⍳*⊢-⍳es de 5 bytes, usando ⎕IO←1.
lirtosiast el
@lirtosiast me tomó un tiempo entender por qué funciona eso, pero lo entendí. Gracias.
J. Sallé
5

Haskell, 23 bytes

f i=[x^(i-x)|x<-[1..i]]

Pruébalo en línea!

Versión alternativa, también 23 bytes:

f i=(^)<*>(i-)<$>[1..i]
nimi
fuente
5

Japt, 5 bytes

õ_p´U

Intentalo

õ         :Range [1,input]
 _        :Map
  p       :  Raise to the power of
   ´U     :  Input decremented
Lanudo
fuente
5

Perl 6 , 19 bytes

{^$_+1 Z**[R,] ^$_}

Pruébalo en línea!

Bloque de código anónimo que toma un número y devuelve una lista. Zip exponentes el rango 1 to inputy el rangoinput-1 to 0

Jo King
fuente
5

Aheui (esótopo) , 193 164 bytes (56 caracteres)

방빠싹받분샥퍼붇바파쟈뿌차샦히망맣여
타빠바푸투반또분뽀뿌서썪삯타삯받반타
석차샦져쌲볼어타토싻삭빠쏛ㅇ또섞썪뻐

Pruébalo en línea!

Pruébalo en AVIS ( coreano ); simplemente copie y pegue el código anterior, presione el botón de inicio, ingrese un número, vea cómo se mueve. Para ver la salida, presione > _ icono en el lado izquierdo.


No se juega mucho al golf, pero lo intento.

cobalto
fuente
¿Es posible elegir un conjunto de caracteres para que cada carácter se almacene en 2 bytes?
tsh
@tsh Según la especificación de Aheui , un código de Aheui consta de solo caracteres UTF-8.
cobaltp
4

Pyth , 5 bytes

_m^-Q

Pruébalo en línea!

Esta codificación óptima sería de 4.106 bytes.

_                reverse of the following list:
 m               map the following lambda d:
  ^                (N-d)**d
   -Qd             
      d
       Q         over [0,...,N-1]
lirtosiast
fuente
2

MathGolf , 6 bytes

rx\╒m#

Pruébalo en línea!

Jo King
fuente
He implementado la resta, multiplicación y división inversa, pero parece que un operador de potencia inversa podría ser útil.
maxb
2

Retina , 35 bytes

.+
*
_
$$.($.'*$($.>`$*)_¶
%~`^
.+¶

Pruébalo en línea! Explicación:

.+
*

Convierta la entrada a unario.

_

Empareja cada posición. Esto establece varias variables de reemplazo. $`se convierte en la izquierda del partido; $>`modifica esto para que sea la izquierda y el partido; $.>`modifica esto para tomar la longitud, es decir, el índice actual. $'mientras tanto es el derecho del partido, también lo $.'es la longitud, es decir, el exponente actual.

$$.($.'*$($.>`$*)_¶

Crea una cadena $.(más $.'repeticiones de $.>`*más _. Por ejemplo, para un índice de 2 en una entrada original de 5, $.'es 3 y $.>`es 2, entonces la cadena resultante es $.(2*2*2*_. Esto es convenientemente una expresión de reemplazo de retina que calcina 2³. Cada cadena se emite en su propia línea.

%~`^
.+¶

Para cada línea generada por la etapa anterior, prefije una línea .+, convirtiéndola en una etapa de reemplazo y evalúe esa etapa, calculando así la expresión.

Neil
fuente
2

QBasic, 35 33 bytes

¡Gracias @Neil por 2 bytes!

INPUT a
FOR b=1TO a
?b^(a-b)
NEXT

Versión ligeramente ampliada en REPL.IT porque el intérprete no está completamente a la altura.

Salida

QBasic (qb.js)
Copyright (c) 2010 Steve Hanov

   5
1
8
9
4
1
Steenbergh
fuente
¡Ahorre 2 bytes enviando la lista en el orden correcto! ( b^(a-b)para b=1..a)
Neil
@Neil ¡Gracias, lo he trabajado!
steenbergh
2

MATL , 5 bytes

:Gy-^

Pruébalo en línea!

Explicación

Considere la entrada 5como un ejemplo.

:     % Implicit input. Range
      % STACK: [1 2 3 4 5]
G     % Push input again
      % STACK: [1 2 3 4 5], 5
y     % Duplicate from below
      % STACK: [1 2 3 4 5], 5, [1 2 3 4 5]
-     % Subtract, element-wise
      % STACK: [1 2 3 4 5], [4 3 2 1 0]
^     % Power, element-wise. Implicit display
      % STACK: [1 8 9 4 1]
Luis Mendo
fuente
2

Java, 59 bytes

for(int i=1;a+1>i;i++)System.out.println(Math.pow(i,a-i));
isaace
fuente
1
Bienvenido a PPCG. Parece que esto requiere que se asigne "entrada" a la variable predefinida a, que no permitimos.
Shaggy
2
Hola, aquí hay una solución para usted: n->{for(int i=0;i++<n;)System.out.println(Math.pow(i,n-i));} 60 bytes (código y casos de prueba en el enlace)
Olivier Grégoire
1

Limpio , 37 bytes

import StdEnv
$n=[i^(n-i)\\i<-[1..n]]

Pruébalo en línea!

Define $ :: Int -> [Int]tomar un número entero y devolver la lista de resultados.

$ n                // function $ of n
 = [i ^ (n-i)      // i to the power of n minus i
    \\ i <- [1..n] // for each i in 1 to n
   ]
Οurous
fuente
1

R , 34 bytes

x=1:scan();cat(x^rev(x-1),sep=',')

Pruébalo en línea!

Giuseppe
fuente
¿El "sep" predeterminado no es un espacio? ¿Eso no funcionaría?
Stuart Stevenson
1
@stuartstevenson "La salida será una lista de números, delimitada por comas o nuevas líneas".
Giuseppe
1

05AB1E , 5 bytes

LD<Rm

Respuesta de Port of @lirtosiast 's Jelly .

Pruébalo en línea.

Explicación:

L      # List in the range [1, (implicit) input integer]
       #  i.e. 5 → [1,2,3,4,5]
 D<    # Duplicate this list, and subtract 1 to make the range [0, input)
       #  i.e. [1,2,3,4,5] → [0,1,2,3,4]
   R   # Reverse it to make the range (input, 0]
       #  i.e. [0,1,2,3,4] → [4,3,2,1,0]
    m  # Take the power of the numbers in the lists (at the same indices)
       # (and output implicitly)
       #  i.e. [1,2,3,4,5] and [4,3,2,1,0] → [1,8,9,4,1]
Kevin Cruijssen
fuente
1

Lua , 43 41 bytes

-2 bytes gracias a @Shaggy

s=io.read()for i=1,s do print(i^(s-i))end

Pruébalo en línea!

ouflak
fuente
1
No creo que necesites el +0; Parece funcionar sin él.
Shaggy
1

R, 22 bytes

n=scan();(1:n)^(n:1-1)

Bastante autoexplicativo; tenga en cuenta que el :operador tiene mayor precedencia que el -operador, por lo que n:1-1es más corto que(n-1):0

Si se nos permite comenzar en 0, entonces podemos perder dos bytes al (0:n)^(n:0)evitar la necesidad de un -1.

JDL
fuente
1

Carbón de leña , 9 bytes

I⮌ENX⁻θιι

Pruébalo en línea! El enlace es a la versión detallada del código. Explicación:

   N        Input as a number
  E         Map over implicit range
       ι    Current value
     ⁻      Subtracted from
      θ     First input
    X       Raised to power
        ι   Current value
 ⮌          Reverse list
I           Cast to string
             Implicitly print on separate lines
Neil
fuente