Diberikan input, cetak semua eksponen di mana dasar dan jumlah daya ke input

20

Jadi ini tantangan pertama saya di situs ini.

Tantangannya adalah mengambil bilangan bulat input n , yang akan menjadi positif, dan mencetak, dalam urutan naik ( 1 ke n , termasuk n ), output dari i(ni) (di mana i adalah bilangan bulat saat ini).

Contoh

Diberikan input 5, program akan mencetak:

1  
8  
9  
4  
1  

14 adalah 1 dan1+4=5
23 adalah 8 dan2+3=5
32 adalah 9 dan3+2=5
41 adalah 4 dan4+1=5
50 adalah 1 dan5+0=5

Masukan dan keluaran

Input akan dalam bentuk bilangan bulat positif. Output akan berupa daftar angka, dibatasi oleh koma atau baris baru.

Ini , jadi kode terpendek menang.

Perwujudan Ketidaktahuan
sumber
5
detail koma / baris baru harus dihilangkan, itu adalah praktik normal di sini untuk membiarkan output daftar dalam format yang mudah, termasuk sebagai objek daftar / array yang dikembalikan oleh fungsi
Sparr
3
Apakah input selalu lebih besar dari 0 atau kita harus berurusan dengan 0 dan negatif?
Veskah
Masukan akan selalu positif
Perwujudan Ketidaktahuan
6
Dua jawaban yang sama pendeknya tidak masalah. Jika Anda merasa ingin menerima jawaban, pilih yang paling awal diposting. Namun saya sangat menyarankan menunggu setidaknya beberapa hari, dan akan menyarankan untuk tidak pernah menerima jawaban (untuk mendorong lebih banyak pengiriman).
Kamis
2
Bukankah seharusnya judulnya "Diberikan bilangan bulat , cetak semua daya yang diperoleh dengan basis dan eksponen yang berjumlah input"?
Nicola Sap

Jawaban:

6

APL (Dyalog Unicode) , 8 5 byte

⍳*⊢-⍳

Cobalah online!

Fungsi tacit awalan anonim. Tes TIO untuk kisaran [1..10].

Terima kasih @ lirtosiast selama 3 byte.

Bagaimana:

⍳*⊢-⍳  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é
sumber
2
⍳*⊢-⍳adalah 5 byte, menggunakan ⎕IO←1.
lirtosiast
@ lirtosiast membutuhkan waktu beberapa saat untuk mencari tahu mengapa itu berhasil, tapi saya mengerti. Terima kasih.
J. Sallé
5

Haskell, 23 byte

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

Cobalah online!

Versi alternatif, juga 23 byte:

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

Japt, 5 byte

õ_p´U

Cobalah

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

Perl 6 , 19 byte

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

Cobalah online!

Blok kode anonim yang mengambil nomor dan mengembalikan daftar. Zip adalah eksponen rentang 1 to inputdan kisaraninput-1 to 0

Jo King
sumber
5

Aheui (esotope) , 193 164 bytes (56 karakter)

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

Cobalah online!

Cobalah di AVIS ( Korea ); cukup salin dan tempel kode di atas, tekan tombol mulai, masukkan nomor, lihat bagaimana ia bergerak. Untuk melihat output, tekan ikon > _ di sebelah kiri.


Ini tidak banyak golf, tapi saya mencobanya.

cobaltp
sumber
Apakah mungkin untuk memilih rangkaian karakter, sehingga masing-masing karakter disimpan dalam 2 byte?
tsh
@tsh Menurut spesifikasi Aheui , kode Aheui hanya terdiri dari karakter UTF-8.
cobaltp
4

Pyth , 5 byte

_m^-Q

Cobalah online!

Disandikan secara optimal ini akan menjadi 4,106 byte.

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

Jelly , 5 byte

R*ḶU$

Cobalah online!

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

PHP, 32 byte

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

Jalankan sebagai pipa dengan -nRatau coba online .

Titus
sumber
3

Oktaf , 18 byte

@(n)(t=1:n).^(n-t)

Cobalah online!

Terima kasih Luis Mendo , menggunakan variabel internal menghemat 3 byte.

tsh
sumber
2

MathGolf , 6 byte

rx\╒m#

Cobalah online!

Jo King
sumber
Saya telah mengimplementasikan pengurangan, perkalian, dan pembagian terbalik, tetapi sepertinya operator daya terbalik bisa berguna?
Maks.
2

Python 2 , 40 byte

lambda n:[i**(n-i)for i in range(1,n+1)]   #Outputs a list

Cobalah online!

Python 2 , 41 byte

n,i=input(),0
exec"print(n-i)**i;i+=1;"*n   #Prints in reversed order

Cobalah online!

Vedant Kandoi
sumber
2

Retina , 35 byte

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

Cobalah online! Penjelasan:

.+
*

Konversikan input ke unary.

_

Cocokkan setiap posisi. Ini kemudian menetapkan beberapa variabel pengganti. $`menjadi bagian kiri pertandingan; $>`memodifikasi ini menjadi kiri dan cocok; $.>`memodifikasi ini untuk mengambil panjangnya, yaitu indeks saat ini. $'Sementara itu adalah hak pertandingan, begitu $.'juga panjangnya yaitu eksponen saat ini.

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

Buat string $.(plus $.'pengulangan $.>`*plus _. Sebagai contoh, untuk indeks 2 pada input asli 5, $.'adalah 3 dan $.>`2 sehingga string yang dihasilkan adalah $.(2*2*2*_. Ini dengan mudah adalah ekspresi pengganti Retina yang mengkalibrasi 2³. Setiap string adalah output pada barisnya sendiri.

%~`^
.+¶

Untuk setiap baris yang dihasilkan oleh tahap sebelumnya, awali sebuah garis .+ke sana, mengubahnya menjadi tahap penggantian, dan mengevaluasi tahap itu, sehingga menghitung ekspresi.

Neil
sumber
2

QBasic, 35 33 byte

@Neil terima kasih untuk 2 byte!

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

Versi sedikit diperluas pada REPL.IT karena penerjemah tidak sepenuhnya sesuai dengan spesifikasi.

Keluaran

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

   5
1
8
9
4
1
steenbergh
sumber
Hemat 2 byte dengan mengeluarkan daftar dalam urutan yang benar! ( b^(a-b)untuk b=1..a)
Neil
@Neil Terima kasih, saya sudah mengerjakannya!
steenbergh
2

MATL , 5 byte

:Gy-^

Cobalah online!

Penjelasan

Pertimbangkan input 5sebagai contoh.

:     % 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
sumber
2

Java, 59 Bytes

for(int i=1;a+1>i;i++)System.out.println(Math.pow(i,a-i));
isaace
sumber
1
Selamat datang di PPCG. Sepertinya ini membutuhkan "input" untuk ditugaskan ke variabel yang telah ditentukan a, yang tidak kami izinkan.
Shaggy
2
Halo, ini adalah solusi untuk Anda: n->{for(int i=0;i++<n;)System.out.println(Math.pow(i,n-i));} 60 byte (kode dan uji kasus dalam tautan)
Olivier Grégoire
1

Bersih , 37 byte

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

Cobalah online!

Menentukan $ :: Int -> [Int]mengambil bilangan bulat dan mengembalikan daftar hasil.

$ 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
   ]
Suram
sumber
1

R , 34 byte

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

Cobalah online!

Giuseppe
sumber
Apakah default "sep" bukan spasi? Apakah itu tidak berhasil?
stuart stevenson
1
@stuartstevenson "Output akan berupa daftar angka, dibatasi oleh koma atau baris baru."
Giuseppe
1

05AB1E , 5 byte

LD<Rm

Port dari jawaban @ lirtosiast 's Jelly .

Cobalah online.

Penjelasan:

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
sumber
1

Lua , 43 41 byte

-2 byte terima kasih kepada @Shaggy

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

Cobalah online!

ouflak
sumber
1
Saya pikir Anda tidak perlu +0; tampaknya bekerja tanpa itu.
Shaggy
1

R, 22 byte

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

Cukup jelas; perhatikan bahwa :operator lebih diutamakan daripada -operator sehingga n:1-1lebih pendek dari(n-1):0

Jika kita diizinkan untuk mulai dari 0, maka kita bisa kehilangan dua byte dengan menggunakan (0:n)^(n:0)menghindari perlunya -1.

JDL
sumber
1

Arang , 9 byte

I⮌ENX⁻θιι

Cobalah online! Tautan adalah untuk mengucapkan versi kode. Penjelasan:

   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
sumber