Toplama-çıkarma zinciri - Addition-subtraction chain

Bir toplama-çıkarma zinciribir genelleme toplama zincirleri çıkarma dahil etmek için, bir sıra a0, a1, a2, a3, ... tatmin edici

İçin bir toplama-çıkarma zinciri n, uzunluk L, böyle bir toplama-çıkarma zinciridir . Yani, kişi bu şekilde hesaplayabilir n tarafından L eklemeler ve / veya çıkarmalar. (Bunu not et n pozitif olmasına gerek yok. Bu durumda, biri de içerebilir a−1 Sırayla = 0, böylece n = −1, uzunluğu 1 olan bir zincir ile elde edilebilir.)

Tanım olarak, her toplama zinciri aynı zamanda bir toplama-çıkarma zinciridir, ancak bunun tersi geçerli değildir. Bu nedenle, en kısa toplama-çıkarma zinciri n yukarıda en kısa ekleme zincirinin uzunluğu ile sınırlandırılmıştır. n. Bununla birlikte, genel olarak, minimum bir toplama-çıkarma zincirinin belirlenmesi (minimum bir toplama zincirini belirleme problemi gibi), şu anda hiçbir etkin algoritmanın bilinmediği zor bir problemdir. Uygun olanı bulma ile ilgili problem toplama dizisi dır-dir NP tamamlandı (Downey ve diğerleri, 1981), ancak optimal toplama veya toplama-çıkarma zincirlerinin bulunup bulunmadığı kesin olarak bilinmemektedir. NP-zor.

Örneğin, bir toplama-çıkarma zinciri: , , , . Bu bir ... Değil en az toplama-çıkarma zinciri n= 3, ancak bunun yerine seçebilirdik çünkü . En küçük n minimum ekleme zincirinden daha kısa olan bir toplama-çıkarma zincirinin n= 31, yalnızca 6 eklemede hesaplanabilir (minimum ekleme zinciri için 7 yerine):

Bir toplama zinciri gibi, bir toplama-çıkarma zinciri de kullanılabilir toplama zinciri üs alma: uzunluktaki toplama-çıkarma zinciri verildiğinde L için n, güç çarparak veya bölerek hesaplanabilir x L çıkarma işlemlerinin bölümlere karşılık geldiği zamanlar. Bu, bölmenin pahalı olmayan bir işlem olduğu problemlerde potansiyel olarak etkilidir, özellikle de üs alma için eliptik eğriler Bölünmenin yalnızca bir işaret değişikliğine karşılık geldiği yer (Morain ve Olivos tarafından önerildiği gibi, 1990).

Biraz donanım çarpanları ile çarpmak n n ile ikili olarak tanımlanan bir toplama zinciri kullanarak:

    n = 31 = 0 0 0 1 1 1 1 1 (ikili).

Diğer donanım çarpanları ile çarpılır n n ile açıklanan bir toplama-çıkarma zinciri kullanarak Kabin kodlaması:

    n = 31 = 0 0 1 0 0 0 0 −1 (Kabin kodlaması).

Referanslar

  • Volger, Hugo (8 Nisan 1985). "Toplama / çıkarma zincirleriyle ilgili bazı sonuçlar". Bilgi İşlem Mektupları. 20 (3): 155–160. doi:10.1016/0020-0190(85)90085-7.
  • Morain, François; Olivos, Jorge (1990). "Toplama-çıkarma zincirleri kullanarak eliptik bir eğri üzerinde hesaplamaları hızlandırmak" (PDF). Informatique théorique et uygulamaları. 24 (6): 531–543. CiteSeerX  10.1.1.56.347.
  • Downey, Peter J .; Leong, Benton L .; Sethi, Ravi (1981). "Toplama zincirleri ile dizileri hesaplama". SIAM J. Comput. 10 (3): 638–646. doi:10.1137/0210047.
  • Sloane, N.J.A. (ed.). "A128998 dizisi (minimum toplama-çıkarma zincirinin uzunluğu)". Tam Sayı Dizilerinin Çevrimiçi Ansiklopedisi. OEIS Vakfı.