Tam sayı çarpma ve ikili karar diyagramlarının en önemli biti


15

Let ve Y , iki ikili sayılar n bit ve z = x y ikili sayı (uzunluk 2 , n 'nin ürününün) x ve y . Z = z 2 n - 1z 0 ürününün en anlamlı bitini z 2 n - 1 hesaplamak istiyoruz .xynz=xy 2nxyz2n-1z=z2n-1...z0

Bu fonksiyonun ikili karar şemaları modelindeki karmaşıklığını analiz etmek için (özellikle bir defaya mahsus dallanma programları) durumu için bazı eşdeğer ifadeler aramaya çalışıyorum . İlk belirgin şey z 2 n - 1 = 1 x y 2 2 n - 1'dir (burada x ve y , ikili sayılara karşılık gelen tamsayılardır). Bazı girdi bitlerini sabit ayarlarsam ne olacağını sezgi almak istiyorum. Örneğin, en önemli giriş bitiniz2n-1=1z2n1=1xy22n1xy ve y ila 0 Sabit 0 fonksiyonunu alıyorum. Ancak daha düşük öneme sahip bitler sonuç üzerinde böyle bir etkiye sahip değildir.xy

durumu için, bazı giriş bitlerini düzeltirsem ne olacağını daha fazla yardımcı olan başka bir eşdeğer ifade var mı? Yardımcı olabilecek iki ikili sayının çarpımını hesaplamak için rafine edilmiş herhangi bir yöntem var mı? Yoksa bu soruna başka bir yaklaşımınız var mı?z2n-1=1


Son paragrafta üç soruyu oldukça belirsiz buluyorum. Lütfen daha somut bir soru sormayı düşünün.
slimton

Sorular kasıtlı olarak belirsizdir. Belki de birinin bu sorun için yeni bir yaklaşımı veya yeni fikirleri vardır.
Marc Bury

Sorun için bir BDD'nin genişliğini mi arıyorsunuz?
Sylvain Peyronnet

BDD boyutunda bir alt sınırla ilgileniyorum.
Marc Bury

1
Polinom alt sınırı mı demek istiyorsun? Çarpma L cinsindendir, bu nedenle düzgün polinom boyutlu BDD'lere sahiptir (eşit genişlik 5, üniform ). N-C1
Emil Jeřábek Monica

Yanıtlar:


5

İlginç bir kaynak DE Knuth: Bilgisayar Programlama Sanatı, Cilt 4, Fascicle 1, Bitsel Hileler ve Teknikler; İkili Karar Diyagramları , Addison-Wesley, Pearson Education 2009

96 Sayfasında, tüm z = x⋅y bitleri için bir BDD vardır, burada x ve y 3 bit vardır. 3 bit durumunda, en önemli biti temsil eden BDD'nin 7 terminal olmayan düğüme sahip olduğunu gösterir. Aşağıdaki resme bakın, x = (x2, x1, x0) ve y = (y2, y1, y0) indekslerinizi kullanarak yeniden çizdim.

Knuth'un kitabında 140. sayfada, BDD hakkında, iki sayının sonsuz sayıda bitle çarpımı için en önemli biti temsil eden bir soru (no. 183) var (buna, "önde gelen bit fonksiyonunu sınırlama" denir) - bu, için arıyoruz! Sayfa 223'teki cevap, ortaya çıkan BDD'nin ilk seviyelerini verir ve tüm seviyelerdeki düğüm sayısını tartışır, ancak ne yazık ki böyle bir BDD'yi oluşturmak için algoritma vermez.

İki 3 bitlik sayının çarpımı için en önemli bit

1: (x2, x1, x0) * (y2, y1, y0) çarpımı için en önemli bit


1
Bu referans için teşekkür ederim. İkili karar diyagramlarının bu "programlama ansiklopedisinin" bir parçası olduğunu bilmiyordum.
Marc Bury
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.