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:

Jawaban:


6

Mathematica, 23 byte

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

Gunakan rumus dalam pertanyaan.


4

JavaScript (ES6), 29 byte

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

Menggunakan formula yang diberikan dalam OEIS.


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.

Selamat datang di PPCG dan jawaban pertama yang bagus!
mbomb007


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.

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)


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 .


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!


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


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

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



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 ).


@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.


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
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.