Dengan konstanta k, temukan pohon berakar terbesar yang mungkin, jika untuk setiap jalur dari root ke daun, jumlah arity dari node-nya sama dengan k?


8

Sebagai contoh, berikut ini semua pohon yang mungkin untuk kasus : Pada setiap simpul yang ditulis adalah aritynya (= jumlah anak).k=3masukkan deskripsi gambar di sini

Sementara ini harus dipecahkan oleh pemrograman dinamis, saya pikir ada hasil kombinatorik dalam hal ini (baik batas atas yang agak halus atau berbutir halus). Apakah ada yang tahu?


Edit:

Ukuran pohon adalah jumlah simpul yang dimilikinya, jadi pohon terbesar adalah pohon dengan jumlah simpul maksimum.


3
Tentukan terbesar.
idoby

Anda mungkin berarti "setiap jalur dari akar ke daun ", karena jika tidak pohon 1-simpul adalah satu-satunya solusi. (Juga akan lebih baik untuk secara eksplisit mengatakan bahwa Anda berbicara tentang pohon yang di- root - pohon yang tidak berakar juga dimungkinkan.)
j_random_hacker

@ j_random_hacker Ya, Anda sepenuhnya benar. Saya akan memperbaiki pertanyaannya.
Sudix

Jawaban:


4

Misalkan adalah ukuran pohon terbesar, di mana aritas dari setiap jalur dari akar ke daun bertambah hingga .B(n)n

Jika akar pohon tersebut memiliki arity , maka jalur untuk setiap sub pohon harus berjumlah hingga . Karena sub pohon harus optimal, pohon memiliki ukuran .kknk1+kB(nk)

Rumus untuk hanya memaksimalkan ekspresi di atas , menggunakan nilai sebelumnya .B(n)kB(n1),B(n2),

Saya mencoba melakukan ini dengan tangan, dan menemukan (dengan bantuan @Sudix, terima kasih) . Ini sepertinya A239288 dalam Sloanes Online Encyclopedia of Integer Sequences. Rekursi yang diberikan serupa, tetapi tidak persis sama.1,2,3,5,7,11,16,23,34,

Penjelasan urutannya adalah: "Jumlah maksimal x0 + x0 * x1 + ... + x0 * x1 * ... * xk atas semua komposisi x0 + ... + xk = n". Itu memang urutan yang sama: jika urutan arities sepanjang jalan dari root adalah x0, x1, ..., xk ini harus dijumlahkan menjadi n, dan jumlah node memang adalah rumus yang diberikan.

Komentar lain di Sloane menarik: "Untuk n> = 8 solusinya menjadi siklik: a (3n + k) = 3 + 3a (3n - 3 + k)". Ini tampaknya menunjukkan bahwa untuk nilai yang lebih besar dari 24, akar pohon selalu memiliki tiga anak.


Jadi, untuk memasukkannya ke dalam satu rumus, rekursi untuk menyelesaikan / memperkirakan adalah:B(n)=1+max1knkB(nk)B(0)=1
Sudix

2
Saya pikir dalam urutan Anda, Anda melewatkan langkah, saya punya: '1, 2, 3, 5, 7, 11, 16, 23, 34, 49, 70, 103, 148, 211, 310, 445, 634, 931, 1336, 1903, 2794, 4009, 5710, 8383, 12028, 17131 '; Jika saya tidak salah menghitung, ada entri [OEIS] [1] untuk seri-1. [1]: oeis.org/…
Sudix
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.