Jumlah maksimal daerah yang diperoleh dengan menggabungkan n titik di sekitar lingkaran dengan garis lurus

8

Mari kita mendefinisikan f (n) sebagai jumlah aximal dari daerah yang diperoleh dengan menggabungkan n titik di sekitar lingkaran dengan garis lurus. Misalnya, dua titik akan membagi lingkaran menjadi dua bagian, tiga menjadi empat, seperti ini: masukkan deskripsi gambar di sini

Pastikan ketika Anda menggambar garis, Anda tidak memiliki persimpangan lebih dari dua garis.

Tugas Anda

Diberi nomor n , cetak f (n) .

Kasus uji:

 n | f(n)   
---+-----
 1 |   1
 2 |   2
 3 |   4
 4 |   8
 5 |  16
 6 |  31
 7 |  57
 8 |  99
 9 | 163

Anda dapat melihat lebih banyak di sini .

Menggunakan generator urutan bawaan tidak diperbolehkan.

Ingat, ini , jadi kode dengan jumlah byte terkecil menang.

Jika kalian menginginkan formula, ini dia:

Oliver Ni
sumber

Jawaban:

6

Mathematica, 23 byte

Tr@Binomial[#,{0,2,4}]&

Gunakan rumus dalam pertanyaan.

JungHwan Min
sumber
4

JavaScript (ES6), 29 byte

n=>(((n-6)*n+23)*n/6-3)*n/4+1

Menggunakan formula yang diberikan dalam OEIS.

Neil
sumber
4

Jelly, 6 byte

5Ḷc@’S

Cobalah online! | Verifikasi kasus uji

Penjelasan

Menggunakan formula OEIS ((n-1)C4 + (n-1)C3 + ... + (n-1)C0).

5Ḷc@’S    Main link.  Args: n

5         Yield 5.
 Ḷ        Lowered range: yield [0,1,2,3,4].
    ’     Yield n-1.
   @      Swap operands of the preceding dyad, 'c'.
  c       Combinations: yield [(n-1)C0, (n-1)C1, (n-1)C2, (n-1)C3, (n-1)C4].
     S    Sum: return (n-1)C0 + (n-1)C1 + (n-1)C2 + (n-1)C3 + (n-1)C4.
jtsalinger
sumber
Selamat datang di PPCG dan jawaban pertama yang bagus!
mbomb007
3

MATL , 7 byte

q5:qXns

Cobalah online! Atau verifikasi semua kasus uji .

Penjelasan

Menggunakan rumus (dari OEIS): a ( n ) = C ( n −1, 4) + C ( n −1, 3) + ... + C ( n −1, 0)

q      % Implicit input. Subtract 1
5:q    % Array [0 1 2 3 4]
Xn     % Binomial coefficient, vectorized
s      % Sum
Luis Mendo
sumber
3

Jelly , 6 byte

c3ḶḤ¤S

Cobalah online! atau verifikasi semua kasus uji .

Bagaimana itu bekerja

c3ḶḤ¤S  Main link. Argument: n

    ¤   Combine the three links to the left into a niladic chain.
 3        Yield 3.
  Ḷ       Unlength; yield [0, 1, 2].
   Ḥ      Unhalve; yield [0, 2, 4].
c       Combinations; compute [nC0, nC2, nC4].
     S  Sum; return nC0 + nc2 + nC4.
Dennis
sumber
3

Java 7,50 47 byte

int c(int n){return(n*n*(n-6)+23*n-18)*n/24+1;}

Menggunakan formula (dari OEIS)

Numberknot
sumber
3

> <> , 27 26 + 3 = 29 byte

3 byte ditambahkan untuk flag -v

::::6-**$f8+*f3+-+*f9+,1+n

Cobalah online!

Satu byte disimpan berkat Martin Ender .

Emigna
sumber
3

R, 25 byte

sum(choose(scan(),0:2*2))

scan()mengambil masukan ndari stdin, yang diteruskan ke choosebersama dengan 0:2*2. Istilah terakhir ini adalah 0untuk 2(yaitu [0, 1, 2]) dikalikan dengan 2, yaitu [0, 2, 4]. Sejak chooseadalah Vectorized, ini menghitung n choose 0, n choose 2, n choose 4, dan kembali mereka dalam daftar. Akhirnya, sumkembalikan jumlah angka-angka ini, cukup mengejutkan.

Saya tidak berpikir bahwa ini bisa bermain golf lebih jauh tetapi saya akan sangat senang terbukti salah!

rturnbull
sumber
1
Saya hanya 2 detik dari mengirimkan solusi yang sama, bagus!
Billywob
2

dc, 21

?ddd6-*23+*6/3-*4/1+p

Versi RPN dari jawaban @ Neil .

Hasil tes:

$ for i in {1..9}; do dc -e "?ddd6-*23+*6/3-*4/1+p" <<< $i; done
1
2
4
8
16
31
57
99
163
$ 
Trauma Digital
sumber
2

J, 9 byte

+4&!+2!<:

Menggunakan formula C(n-1, 2) + C(n, 4) + n = C(n, 0) + C(n, 2) + C(n, 4).

Pemakaian

   f =: +4&!+2!<:
   (,.f"0) >: i. 10
 1   1
 2   2
 3   4
 4   8
 5  16
 6  31
 7  57
 8  99
 9 163
10 256
   f 20
5036

Penjelasan

+4&!+2!<:  Input: integer n
       <:  Decrement n
     2     The constant 2
      !    Binomial coefficient C(n-1, 2)
 4&!       Binomial coefficient C(n, 4)
    +      Add them
+          Add that to n and return
mil
sumber
2

05AB1E , 6 byte

2Ý·scO

Cobalah online!

Penjelasan

Implementasi langsung dari formula OEIS c(n,4) + c(n,2) + c(n,0)

2Ý       # range: [0,1,2]
  ·      # multiply by 2: [0,2,4]
   s     # swap list with input
    c    # combinations
     O   # sum
Emigna
sumber
1

Sebenarnya , 6 byte

D╣5@HΣ

Cobalah online!

Penjelasan:

D╣5@HΣ
D       decrement input
 ╣      push that row of Pascal's triangle
  5@H   first 5 values
     Σ  sum
Mego
sumber
0

Oktaf , 27 byte

@(m)binocdf(4,m-1,.5)*2^m/2

Ini adalah fungsi anonim.

Cobalah di Ideone .

Penjelasan

Ini didasarkan pada rumus OEIS a ( m ) = C ( m −1, 4) + C ( m −1, 3) + ... + C ( m −1, 0), di mana C adalah koefisien binomial. The fungsi distribusi binomial

masukkan deskripsi gambar di sini

untuk k = 4, n = m −1 dan p = 1/2 menghasilkan 2 m −1 a ( m ).

Luis Mendo
sumber
@Liver Itu mungkin akan berakhir menjadi lebih lama, karena itu bukan fungsi distribusi. Saya akan membutuhkan probabilitas (massa) fungsi dan jumlah; sesuatu seperti@(m)sum(binopdf(0:2:4,m,.5)*2^m)
Luis Mendo
0

TI-89 Basic, 57 Bytes

:Def a(a)=Func
:Return nCr(n,0)+nCr(n,2)+nCr(n,4)
:End Func

Kemunduran ke masa lalu.

Guci Gurita Ajaib
sumber
1
Saya tidak yakin, tetapi tidak bisakah Anda menghapus )yang terakhir nCr?
Oliver Ni
@ Lebih Tua Hai "Tidak Yakin", saya juga Tidak Yakin. (Idiokrasi adalah film yang hebat).
Magic Octopus Mm