Xích cộng

(Đổi hướng từ Chuỗi cộng)

Trong toán học, xích cộng cho số nguyên dương ndãy số các số tự nhiên bắt đầu bằng 1 và kết thúc với n, sao cho mỗi số trong dãy là tổng của hai số trước đó trong dãy. Hai số trước đó không nhất thiết phải phân biệt. Độ dài của xích cộng là số tổng cần tính để ra số n, nhỏ hơn một so với số lực lượng của dãy.[1]

Các ví dụ sửa

Để lấy ví dụ: (1,2,3,6,12,24,30,31) là xích cộng cho 31 có độ dài bằng 7 bởi

2 = 1 + 1
3 = 2 + 1
6 = 3 + 3
12 = 6 + 6
24 = 12 + 12
30 = 24 + 6
31 = 30 + 1

xích cộng có thể dùng để tính lũy thừa xích cộng. Phương pháp này cho phép tính lũy thừa với số mũ nguyên với số phép nhân bằng độ dài của chuỗi. Lấy ví dụ trên, sử dụng xích cộng trên ta chỉ cần sử dụng 7 phép nhân để lũy thừa bậc 31 của số n tùy ý, thay vì 30 nếu phải nhân liên tiếp hoặc 8 nếu tính lũy thừa bằng chia nhị phân:

n2 = n × n
n3 = n2 × n
n6 = n3 × n3
n12 = n6 × n6
n24 = n12 × n12
n30 = n24 × n6
n31 = n30 × n

Các phương pháp tính xích cộng sửa

Tính xích cộng có độ dài tối thiểu cho số n không phải là dễ; dạng tổng quát của bài toán tính chuỗi có thể tính giá trị cho mỗi phần tử trong một dãy số cho trước là NP-đầy đủ.[2] Chưa có thuật toán nào được biết để có thể tính xích cộng có độ dài tổi thiểu cho số n mà đảm bảo thời gian hoặc bộ nhớ hợp lý. Tuy nhiên, các kỹ thuật tính xích cộng với độ dài ngắn thì vẫn có nhưng sẽ không tối ưu.[3]

Một trong những phương pháp phổ biến để tính là phương pháp nhị phân, tương tự với tính lũy thừa bằng bình phương.Trong phương pháp này, xích cộng cho   được tính đệ quy từ xích cộng cho  . Nếu   chẵn thì nó có thể tính bằng tổng :  . Nếu   lẻ, phương pháp sử dụng hai tổng, tổng   rồi tổng của tổng đó với 1[3]

Độ dài chuỗi sửa

Ký hiệu   là số tự nhiên   nhỏ nhất sao cho tồn tại xích cộng độ dài   tính ra  . Ta chứng minh được rằng

 ,

với  trọng số Hamming (số các bit 1) trong biểu diễn nhị phân của  .[4]

Chuỗi Brauer sửa

Chuỗi Brauer hoặc xích cộng sao là xích cộng mà mỗi phần tử có tổng sử dụng số ngay trước nó. Số Brauer là số sao cho chuỗi Brauer tối ưu.[5]

Brauer chứng minh rằng

l*(2n−1) ≤ n − 1 + l*(n)

với   là độ dài chuỗi Brauer ngắn nhất. Với một số giá giá trị n, đặc biệt là n < 12509 thì bất đẳng thức trên thành đẳng thức:[6] l(n) = l*(n). Tuy nhiên, Hansen chứng minh rằng có một số giá trị n sao cho l(n) ≠ l*(n), ví dụ như n = 26106 + 23048 + 22032 + 22016 + 1l*(n) = 6110, l(n) ≤ 6109. Số n nhỏ nhất có tính chất như vậy là 12509.

Giả thuyết Scholz sửa

Giả thuyết Scholz ((đôi khi còn được gọi là Scholz–Brauer hoặc Brauer–Scholz), đặt tên theo Arnold Scholz và Alfred T. Brauer) là giả thuyết từ năm 1937 phát biểu rằng

 

Bất đẳng thức này thỏa mãn với mọi số Hansen, dạng tổng quát của số Brauer; Neill Clift đã kiểm tra bằng máy tính cho mọi   là số Hansen (số 5784689 thì không phải số Hansen).[7] Hơn nữa Clift còn kiểm chứng được thêm rằng   với mọi  .[5]

Xem thêm sửa

Tham khảo sửa

  1. ^ D. E. Knuth, The Art of Computer Programming, Vol 2, "Seminumerical Algorithms", Section 4.6.3, 3rd edition, 1997
  2. ^ Downey, Peter; Leong, Benton; Sethi, Ravi (1981), “Computing sequences with addition chains”, SIAM Journal on Computing, 10 (3): 638–646, doi:10.1137/0210047. A number of other papers state that finding a shortest addition chain for a single number is NP-complete, citing this paper, but it does not claim or prove such a result.
  3. ^ a b Otto, Martin (2001), Brauer addition-subtraction chains (PDF), Diplomarbeit, University of Paderborn, Bản gốc (PDF) lưu trữ ngày 19 tháng 10 năm 2013, truy cập ngày 19 tháng 10 năm 2013.
  4. ^ Schönhage, Arnold (1975), “A Lower Bound for the Length of Addition Chains”, Theoretical Computer Science, 1 (1): 1–12, doi:10.1016/0304-3975(75)90008-0
  5. ^ a b Guy (2004) p.169
  6. ^ Achim Flammenkamp , Shortest Addition Chains
  7. ^ Clift, Neill Michael (2011). “Calculating optimal addition chains” (PDF). Computing. 91 (3): 265–284. doi:10.1007/s00607-010-0118-8.

Liên kết ngoài sửa