Étant donné une entrée, imprimez tous les exposants où la base et la puissance de l'entrée

20

C'est donc mon premier défi sur ce site.

Le défi est de prendre un entier d'entrée , qui sera positif, et d'imprimer, dans l'ordre croissant ( à , y compris n ), la sortie de (où est l'entier courant). n1ni(ni)i

Exemple

Étant donné l'entrée 5, le programme imprimera:

1  
8  
9  
4  
1  

14 est 1 et1+4=5
23 est 8 et2+3=5
32 est 9 et3+2=5
41 est 4 et4+1=5
50 est 1 et5+0=5

Entrée et sortie

L'entrée sera sous la forme d'un entier positif. La sortie sera une liste de nombres, délimitée par des virgules ou de nouvelles lignes.

C'est le , donc le code le plus court l'emporte.

Incarnation de l'ignorance
la source
5
le détail virgule / nouvelle ligne doit être omis, il est normal ici de laisser la sortie des listes dans n'importe quel format pratique, y compris en tant qu'objet liste / tableau renvoyé par une fonction
Sparr
3
L'entrée est-elle toujours supérieure à 0 ou devons-nous faire face à 0 et aux négatifs?
Veskah
Les entrées seront toujours positives
Incarnation de l'ignorance
6
Deux réponses tout aussi courtes n'ont pas d'importance. Si vous souhaitez accepter une réponse, choisissez celle qui a été publiée le plus tôt possible. Cependant, je recommande fortement d' attendre au moins quelques jours et je suggère de ne jamais accepter de réponse (pour encourager plus de soumissions).
Novurous
2
Le titre ne devrait-il pas être "Étant donné un entier , imprimer tous les pouvoirs obtenus avec une base et un exposant qui résument à l'entrée"?
Nicola Sap

Réponses:

6

APL (Dyalog Unicode) , 8 5 octets

⍳*⊢-⍳

Essayez-le en ligne!

Fonction tacite de préfixe anonyme. Tests TIO pour la plage [1..10].

Merci @lirtosiast pour 3 octets.

Comment:

⍳*⊢-⍳  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é
la source
2
⍳*⊢-⍳est de 5 octets, en utilisant ⎕IO←1.
lirtosiast
@lirtosiast m'a pris un certain temps pour comprendre pourquoi cela fonctionne, mais je l'ai compris. Merci.
J.Sallé
5

Haskell, 23 octets

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

Essayez-le en ligne!

Version alternative, également 23 octets:

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

Japt, 5 octets

õ_p´U

Essayez-le

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

Perl 6 , 19 octets

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

Essayez-le en ligne!

Bloc de code anonyme qui prend un nombre et renvoie une liste. Zip expose la gamme 1 to inputet la gammeinput-1 to 0

Jo King
la source
5

Aheui (ésotope) , 193 164 octets (56 caractères)

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

Essayez-le en ligne!

Essayez-le sur AVIS ( coréen ); copiez et collez le code ci-dessus, appuyez sur le bouton Démarrer, saisissez un nombre, voyez comment il se déplace. Pour voir la sortie, appuyez sur l' icône > _ sur le côté gauche.


Ce n'est pas beaucoup joué au golf, mais j'essaie.

cobaltp
la source
Est-il possible de choisir un jeu de caractères, de sorte que chaque caractère soit stocké sur 2 octets?
tsh
@tsh Selon la spécification Aheui , un code Aheui se compose uniquement de caractères UTF-8.
cobaltp
4

Pyth , 5 octets

_m^-Q

Essayez-le en ligne!

Le codage optimal serait de 4,106 octets.

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

Gelée , 5 octets

R*ḶU$

Essayez-le en ligne!

R                [1,...,n]
 *               to the power of
  ḶU$            [0,...,n-1] reversed
lirtosiast
la source
3

PHP, 32 octets

while($argn)echo++$i**--$argn,_;

Exécuter en tant que pipe avec -nRou l' essayer en ligne .

Titus
la source
2

MathGolf , 6 octets

rx\╒m#

Essayez-le en ligne!

Jo King
la source
J'ai mis en œuvre la soustraction, la multiplication et la division inverses, mais il semble qu'un opérateur de puissance inversée pourrait être utile?
maxb
2

Rétine , 35 octets

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

Essayez-le en ligne! Explication:

.+
*

Convertissez l'entrée en unaire.

_

Faites correspondre chaque position. Cela définit ensuite plusieurs variables de remplacement. $`devient la gauche du match; $>`modifie ceci pour être la gauche et correspondre; $.>`modifie cela pour prendre la longueur, c'est-à-dire l'indice actuel. $'en attendant, c'est le droit du match, tout $.'comme la longueur, c'est-à-dire l'exposant actuel.

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

Créez une chaîne $.(plus $.'répétitions de $.>`*plus _. Par exemple, pour un index de 2 dans une entrée d'origine de 5, $.'est 3 et $.>`vaut 2, de sorte que la chaîne résultante est $.(2*2*2*_. C'est commodément une expression de remplacement de la rétine qui calcule 2³. Chaque chaîne est sortie sur sa propre ligne.

%~`^
.+¶

Pour chaque ligne générée par l'étape précédente, préfixez-lui une ligne .+, en la transformant en une étape de remplacement, et évaluez cette étape, calculant ainsi l'expression.

Neil
la source
2

QBasic, 35 33 octets

Merci @Neil pour 2 octets!

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

Version légèrement étendue sur REPL.IT car l'interpréteur n'est pas entièrement à jour.

Production

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

   5
1
8
9
4
1
steenbergh
la source
Économisez 2 octets en affichant la liste dans le bon ordre! ( b^(a-b)pour b=1..a)
Neil
@Neil Merci, je l'ai travaillé!
steenbergh
2

MATL , 5 octets

:Gy-^

Essayez-le en ligne!

Explication

Considérez la saisie 5comme exemple.

:     % 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
la source
2

Java, 59 octets

for(int i=1;a+1>i;i++)System.out.println(Math.pow(i,a-i));
isaace
la source
1
Bienvenue chez PPCG. Il semble que cela nécessite l'attribution d'une "entrée" à la variable prédéfinie a, ce que nous n'autorisons pas.
Shaggy
2
Bonjour, voici un correctif pour vous: n->{for(int i=0;i++<n;)System.out.println(Math.pow(i,n-i));} 60 octets (code et cas de test dans le lien)
Olivier Grégoire
1

Nettoyer , 37 octets

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

Essayez-le en ligne!

Définit la $ :: Int -> [Int]prise d'un entier et le renvoi de la liste des résultats.

$ 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
la source
1

R , 34 octets

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

Essayez-le en ligne!

Giuseppe
la source
Le "sep" par défaut n'est-il pas un espace? Cela ne fonctionnerait-il pas?
stuart stevenson
1
@stuartstevenson "La sortie sera une liste de nombres, délimitée par des virgules ou de nouvelles lignes."
Giuseppe
1

05AB1E , 5 octets

LD<Rm

Réponse de Jelly du port de @lirtosiast .

Essayez-le en ligne.

Explication:

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
la source
1

Lua , 43 41 octets

-2 octets grâce à @Shaggy

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

Essayez-le en ligne!

ouflak
la source
1
Je ne pense pas que vous en ayez besoin +0; semble fonctionner sans elle.
Shaggy
1

R, 22 octets

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

Assez explicite; notez que l' :opérateur a une priorité plus élevée que l' -opérateur, ce qui n:1-1est plus court que(n-1):0

Si nous sommes autorisés à commencer à 0, nous pouvons perdre deux octets en (0:n)^(n:0)évitant la nécessité d'un -1.

JDL
la source
1

Fusain , 9 octets

I⮌ENX⁻θιι

Essayez-le en ligne! Le lien est vers la version détaillée du code. Explication:

   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
la source