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.