Dies ist eine statische Kopie unseres alten Forums. Es sind keine Interaktionen möglich.
This is a static copy of our old forum. Interactions are not possible.

PD

Praktikant

  • "PD" started this thread

Posts: 17

Date of registration: Mar 6th 2002

1

Wednesday, August 25th 2004, 6:53pm

ItADD auf BCOUNT

Hallo,
kann mir jemand erklären, wieso bei der Reduktion von ITADD auf BCOUNT (Anfang Kapitel 6) nach der berechnung der s_k nur noch l(n) Zahlen mit n+l(n) Bits zu addieren sind?
Insbesondere da 1<= k <=n , hat man doch zunächst n verschiedene s_k Zahlen mit jeweils l(n) Bits.

a_1,n ... a_1,1
+ ...
+ a_n,n ... a_n,1
------------------------------
s_n ... s_1

Das sind n Zahlen mit jeweils l(n) Bits.

Und weiter?

  • "Joachim" is male

Posts: 2,863

Date of registration: Dec 11th 2001

Location: Hämelerwald

Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)

2

Thursday, August 26th 2004, 12:24am

RE: ItADD auf BCOUNT

Quoted

Original von PD
Hallo,
kann mir jemand erklären, wieso bei der Reduktion von ITADD auf BCOUNT (Anfang Kapitel 6) nach der berechnung der s_k nur noch l(n) Zahlen mit n+l(n) Bits zu addieren sind?
Insbesondere da 1<= k <=n , hat man doch zunächst n verschiedene s_k Zahlen mit jeweils l(n) Bits.
Eingabe:
n Zahlen a_i = a_{i, n - 1} ... a_{i, 0} mit je n Bits.

Es sei:
s_k = \sum_{i = 1}^n a_{i, k}

Es gilt also für 0 <= k < n:
s_k <= n.
s_k hat demnach l(n) Bits.


Es sei:
s_k = s_{k, l(n) - 1} ... s_{k, 0}

Somit:
s_k = \sum_{j = 0}^{l(n) - 1} s_{k, j} * 2^j

Wie bei LOGITADD gilt:
\sum_{i = 1}^n a_i
= \sum_{i = 1}^n \sum_{k = 0}^{n - 1} a_{i, k} * 2^k
= \sum_{k = 0}^{n - 1} \sum_{i = 1}^n a_{i, k} * 2^k
= \sum_{k = 0}^{n - 1} s_k * 2^k
= \sum_{k = 0}^{n - 1} \sum_{j = 0}^{l(n) - 1} s_{k, j} * 2^j * 2^k
= \sum_{j = 0}^{l(n) - 1} \sum_{k = 0}^{n - 1} s_{k, j} * 2^{j + k}

Man muß also l(n) Zahlen addieren, die durch Umordnung der Bits der s_k entstehen (die s_k sind mittels BCOUNT berechenbar).

Nun schätzen wir die Länge jeder dieser Zahlen ab. Es gilt:
\sum_{k = 0}^{n - 1} s_{k, j} * 2^{j + k}
<= \sum_{k = 0}^{n - 1} 2^{j + k}
= 2^j * \sum_{k = 0}^{n - 1} s_{k, j} * 2^k
< 2^j * 2^n
= 2^{j + n}
<= 2^{l(n) + n}

Demnach können wir jede dieser Zahlen mit l(n) + n Bits darstellen.
The purpose of computing is insight, not numbers.
Richard Hamming, 1962

This post has been edited 3 times, last edit by "Joachim" (Aug 26th 2004, 12:33am)


PD

Praktikant

  • "PD" started this thread

Posts: 17

Date of registration: Mar 6th 2002

3

Thursday, August 26th 2004, 5:37pm

Danke schön!
bye