Nomor Ngonal ke-N


8

Sebagian besar dari kita mungkin akrab dengan konsep bilangan segitiga dan kuadrat. Namun, ada juga bilangan pentagonal, bilangan heksagonal, bilangan septagonal, bilangan segi delapan, dll. Bilangan Nagonal didefinisikan sebagai bilangan N urutan yang dibentuk dengan poligon sisi N. Jelas, N> = 3, karena tidak ada bentuk tertutup 2 atau 1 sisi. Beberapa bilangan Ngonal Nth pertama adalah 0, 1, 2, 6, 16, 35, 66, 112, 176, 261, 370, 506, 672, 871 .... Ini adalah urutan A060354 dalam OEIS.

Tugas Anda:

Tulis sebuah program atau fungsi yang, ketika diberi bilangan bulat n sebagai input, mengeluarkan / mengembalikan angka Nagonal Nth.

Memasukkan:

Integer N antara 3 dan 10 ^ 6.

Keluaran:

Nth Nagonal angka di mana N adalah input.

Kasus cobaan:

25 -> 6925
35 -> 19670
40 -> 29680

Mencetak:

Ini adalah , skor terendah dalam byte menang!



Tidak ada ruginya menambahkan definisi tepat langsung.
Wlod AA

Jawaban:


11

Neim , 1 byte

¯ \ _ (ツ) _ / ¯

Cobalah online!


1
Built-in untuk ini? Betulkah? Jelas kurang jelas dari yang saya kira.
Gryphon

1
@Gryphon Sudah ada sejak lama.
Okx

2
@Gryphon Ya. Itu sudah ada sejak Mei.
Okx

1
@Gryphon Pada titik itu, ada banyak tantangan untuk bilangan poligon, jadi saya hanya menambahkan banyak ke Neim: P
Okx

3
Ini tampaknya menjadi built-in untuk menghitung angka ath- bgonal, yang membuat kedua parameternya terisi otomatis dengan satu-satunya argumen yang diberikan.
Lynn

6

05AB1E , 7 6 byte

Disimpan 1 byte berkat Neil

<ÐP+>;

Cobalah online!

Penjelasan

<        # push input-1
 Ð       # triplicate
  P      # product of stack
   +     # add input
    >    # increment
     ;   # divide by 2

<Dn*+>;juga bekerja selama 7 byte.
Neil

@Neil: Terima kasih! Versi modifikasi dari itu menyelamatkan saya satu byte :)
Emigna

Tidak bisa Anda lakukan <3mbukan <ÐP?
Erik the Outgolfer

@EriktheOutgolfer: Tentu, tetapi jumlah byte yang sama.
Emigna

@ Emigna Hanya meminta untuk memastikan.
Erik the Outgolfer


4

Japt , 9 8 byte

´U+³ z Ä

Cobalah

  • 1 byte disimpan berkat ETH

Penjelasan

Decrement ( ´) input ( U), tambahkan input cubed ( ³) ke itu, pisahkan dengan 2 ( z) dan tambahkan 1 ( Ä).


Ada sekitar bazillion cara untuk menulis ulang ini dalam 9 byte, tetapi sulit untuk menemukan solusi 8-byte ... oh, inilah yang saya pikir harus bekerja:´U+³ z Ä
ETHproduksi

Bagus, @ ETHproductions; terganggu oleh pekerjaan saat mencoba untuk menggerusnya.
Shaggy

@ ETHproductions Bagus, itu rumit ... yang lain akan ´U+³+2 z.
Erik the Outgolfer

@EriktheOutgolfer: atau ÄÄbukannya +2.
Shaggy

1
7 byte: à3 *3+Uatau U+3*Uà3(sebagian kredit masuk ke Lynn) ... Cukup yakin itu dapat diatur ulang untuk menghemat lebih banyak byte.
Tn. Xcoder




3

MATL , 7 byte

t3Xn3*+

Saran Luis Mendo, yang sedikit lebih jelas.

    (implicit input)
t                         duplicate
 3Xn                      n choose 3
    3*                    multiply by 3
      +                   add
(implicit output)

Cobalah online!

t:3XNn+

Cobalah online!

Kedua solusi tersebut memuat algoritma Lynn

(implicit input)
t                         duplicate
 :                        range (1...n)
  3XN                     push 3, compute all 3-combinations of the range
     n                    number ( equal to 3*choose(n,3) )
      +                   add
(implicit output)

Mungkin sedikit lebih sederhana:t3Xn3*+
Luis Mendo

ya, aku bersumpah aku mencari Xndan tidak melihatnya. Saya tidak yakin saya tahu cara membaca dokumentasi ...
Giuseppe

Dokumentasi bisa lebih jelas :-) Ini mengasumsikan Anda lebih atau kurang mengetahui fungsi Matlab yang setara. Dalam hal ini, jika Anda mencari kombinasi dari nchoosekdalam server yang Suever ini memberikan kedua fungsi sebagai hasil
Luis Mendo


2

JavaScript (ES6), 38 byte

f=(n,k=n)=>k<2|n<3?k:f(n-1,k)+f(3,k-1)

Rekursi FTW (atau mungkin hanya untuk ketujuh ...)


Atau Anda bisa port solusi bentuk tertutup selama 17 byte ...
Neil


2

Cubix , 20 17 byte

Disimpan 3 byte porting jawaban Emigna .

Iu(:^\:**p+u@O,2)

Cobalah online!

    I u
    ( :
^ \ : * * p + u
@ O , 2 ) . . .
    . .
    . .

jawaban asli:

Iu-2^\:*p*qu@O,2+p*:

Cobalah online!

Perluas ke kubus

    I u
    - 2
^ \ : * p * q u
@ O , 2 + p * :
    . .
    . .

yang mengimplementasikan (n*(n-2)^2+n^2)/2pendekatan tersebut.





1

dc, 13 byte

dd2-2^*r2^+2/

Implementasi yang cukup mudah dari formula pertama yang tercantum pada halaman OEIS .

# Commands           # Stack Tracker (tm)
# Begin with input   # n
d                    # n n
d                    # n n n
2-                   # n-2 n n
2^                   # (n-2)^2 n n
*                    # n*(n-2)^2 n
r                    # n n*(n-2)^2
2^                   # n^2 n*(n-2)^2
+                    # n*(n-2)^2+n^2
2/                   # (n*(n-2)^2+n^2)/2 # matches first formula
# End with output on stack






Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.