Parçalanış Fonksiyonu p(n) Hesaplama

Negatif olmayan bir tam sayı n girin; tam sayı parçalanış sayısı p(n)’yi alın.

Nasıl hesaplanır?

p(n), n sayısını sıra gözetmeksizin pozitif tam sayıların toplamı olarak yazmanın yollarını sayar. Araç dinamik programlamayla bir tablo kurar: p[0] = 1 ve diğer tüm girişler 0 ile başlar, sonra 1’den n’ye kadar her parça büyüklüğü k için j = k’dan n’ye p[j] += p[j − k] güncellemesi yapılır. Son turdan sonra p[n] cevaptır. n, 0 ile 299 arasında bir tam sayı olmalıdır; negatif sayı, ondalık sayı ve 299’dan büyük değerler sonuç vermez, çünkü 300’den itibaren sayı kullanılan kayan noktalı sayılara tam olarak sığmaz. p(0) tanım gereği 1’dir ve sonuç binlik ayraçlarla gösterilir.

Örnek hesaplama

n = 5 için p[0]’dan p[5]’e tablo [1, 0, 0, 0, 0, 0] ile başlar. 1 büyüklüğünde parçalara izin verince: [1, 1, 1, 1, 1, 1]. 2 büyüklüğü eklenince: [1, 1, 2, 2, 3, 3]. 3 eklenince: [1, 1, 2, 3, 4, 5]. 4 eklenince: [1, 1, 2, 3, 5, 6]. 5 eklenince: [1, 1, 2, 3, 5, 7]. Son giriş p(5) = 7 değerini verir. Yedi parçalanış şunlardır: 5, 4+1, 3+2, 3+1+1, 2+2+1, 2+1+1+1 ve 1+1+1+1+1.

Bu örneği dene →

Sık yapılan hatalar

  • Sıralamaları farklı parçalanış saymak. 3+1+1, 1+3+1 ve 1+1+3 tek bir parçalanıştır. Her sırayı saymak kompozisyonları verir; bunlar 2n−1 gibi p(n)’den çok daha hızlı büyür.
  • n’nin kendisinin de bir parçalanış olduğunu unutmak. p(4) = 5’tir, 4 değil; çünkü tek parçalı 4, 3+1, 2+2, 2+1+1 ve 1+1+1+1 ile birlikte sayılır.
  • 299’un üstünde bir değer girip yaklaşık sonuç beklemek. Araç yalnızca kesin değer verir; 300 ve üstünde hiçbir şey döndürmez.
  • Ondalık ya da negatif sayı girmek. Yalnızca 0 ve üstü tam sayılar geçerlidir.
  • p(n)’yi farklı parçalara ya da yalnızca tek sayılara ayrılan parçalanış sayısı sanmak. Bu araç, tekrarlanan parçalar üzerinde kısıtlama olmaksızın tüm parçalanışları sayar.

Bu hesaplama hakkında

Bu hesaplayıcı, sayılar teorisinde klasik bir inceleme konusu olan tam sayı parçalanış fonksiyonu p(n)'yi hesaplar: n'yi sıranın önemli olmadığı pozitif tam sayıların toplamı olarak yazmanın farklı yollarının sayısıdır (örneğin 4’ün kendisi, 3+1, 2+2, 2+1+1 ve 1+1+1+1 ile p(4) = 5 olur). Fonksiyon patlayıcı biçimde büyür — p(100) bile 190 milyonu aşar.

p(n), büyük n değerleri için yaklaşık değer veren Hardy–Ramanujan asimptotik formülüyle ve Ramanujan'ın dikkat çekici uyum (kongrüans) ilişkileriyle (örneğin p(5n+4) her zaman 5'e bölünür) tanınır. Bu hesaplayıcı, 299’a kadar her n için kesin değeri döndürür (p(300) burada kesin hesaplanabilen aralığı aşar).

Bu faydalı oldu mu?

En fazla 3 tepki seçebilirsiniz.

Yorumlar (1)

  • Editör ekibi

    Ramanujan'ın denkliğini bu araçla kendiniz sınayabilirsiniz. 5n + 4 biçimindeki 4, 9 ve 14 değerlerini girin; sonuçlar 5, 30 ve 135 çıkar ve üçü de 5'e bölünür. Sonra 5, 6 ya da 8 deneyin, bölünebilirliğin kaybolduğunu görürsünüz. Burada tam hesaplanabilen en büyük değer yaklaşık 8,6 katrilyonluk p(299)'dur; sınır 299 olmasının nedeni budur. Değerlerde fark ettiğiniz, paylaşmaya değer başka bir örüntü var mı?

Popüler hesaplayıcılar

Tüm Hesaplayıcılar