الگوریتم9-2: ضرب اعداد صحیح بزرگ

21
م ت ی ور گ ل ا9 - 2 : رگ ز ب ح ی ح صاد اعد رب ض له:# ئ س م رگ ز ب ح ی ح صدو عد د رب ضu وv large _ integer prod ( large_integer u, large_integer v) { large_inreger x , y , w , z ; int n , m ; n = maximum(number of digits in u,number of digits in v) if (u = = 0 || v = = 0) return 0 ;

Upload: raziya

Post on 05-Feb-2016

62 views

Category:

Documents


0 download

DESCRIPTION

الگوریتم9-2: ضرب اعداد صحیح بزرگ. مسئله: ضرب دو عدد صحیح بزرگ u و v large _ integer prod ( large_integer u, large_integer v) { large_inreger x , y , w , z ; int n , m ; n = maximum(number of digits in u,number of digits in v) if (u = = 0 || v = = 0) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: الگوریتم9-2:  ضرب اعداد صحیح بزرگ

بزرگ : 2-9الگوریتم صحیح اعداد ضرب

بزرگ مسئله: صحیح عدد دو vو u ضرب

large _ integer prod ( large_integer u, large_integer v)

{

large_inreger x , y , w , z ;

int n , m ;

n = maximum(number of digits in u,number of digits in v)

if (u = = 0 || v = = 0)

return 0 ;

Page 2: الگوریتم9-2:  ضرب اعداد صحیح بزرگ

else if (n < = threshold) return u × v obtained in the usual way;

else {

m = Į n / 2 ⌡;

x = u divide 10 ^ m ; y = rem 10 ^ m;

w = v divide 10 ^ m ; z = rem 10 ^ m;

return prod (x ,w) × 10 ^2m + ( prod ( x, z) + prod (w, y )) × 10 ^ m + prod ( y, z);

}

}

Page 3: الگوریتم9-2:  ضرب اعداد صحیح بزرگ

) ضرب لگوریتم ا برای حالت بدترین در زمانی پیچیدگی تحلیل( صحیح اعداد

: اصلی صحیح عمل عدد یک در دهدهی رقم یک دستکاریدر بزرگ

اعمال انجام یا کردن، تفریق ، کردن جمع ، divide 10 ^ mهنگام

rem 10 ^m 10× یا ^ m .یک را هر اعمال این می mاز انجام باردهد.

: ورودی . n اندازه صحیح عدد دو از یک هر ارقام تعداد ،

ازای از nکه n > sبه T ( n ) = 4 T (n / 2) + cnاست2توانی

T ( s ) = 0

T ( n ) Є θ ( n² )

Page 4: الگوریتم9-2:  ضرب اعداد صحیح بزرگ

روش از توان نمی مسائلی چه درکرد استفاده وحل تقسیم

اندازه- 1• با می nمسایلی تقسیم مسئله زیر چند بهبرابر تقریبا نیز ها مسئله زیر اندازه که . nشود است

. کند می ایجاد نمایی زمان

اندازه- 2• با ای اندازه nمساله به مسئله nتقریبا زیراندازه آن n/cبا در . cکه شود می تقسیم است ثابت

.nlognزمان کند می ایجاد

Page 5: الگوریتم9-2:  ضرب اعداد صحیح بزرگ

شطرنجی صفحه کردن فرش

صفحه • .2k*2kابعاد است شکل • به .Lموزاییک است •. ماند می خالی ها خانه از یکی حالت بدترین در•

Page 6: الگوریتم9-2:  ضرب اعداد صحیح بزرگ

4*4

Page 7: الگوریتم9-2:  ضرب اعداد صحیح بزرگ
Page 8: الگوریتم9-2:  ضرب اعداد صحیح بزرگ
Page 9: الگوریتم9-2:  ضرب اعداد صحیح بزرگ
Page 10: الگوریتم9-2:  ضرب اعداد صحیح بزرگ
Page 11: الگوریتم9-2:  ضرب اعداد صحیح بزرگ
Page 12: الگوریتم9-2:  ضرب اعداد صحیح بزرگ
Page 13: الگوریتم9-2:  ضرب اعداد صحیح بزرگ

ها ای جمله چند ضرب

• P(x)=anxn+an-1xn-1+an-2xn-2 . . . a2x2 + a1x1+a0

• Q(x)=bnxn+bn-1xn-1+bn-2xn-2 . . . b2x2 + b1x1+b0

• R(x)= P(x)Q(x)

Page 14: الگوریتم9-2:  ضرب اعداد صحیح بزرگ

• P(x)=anxn+an-1xn-1+an-2xn-2 . . . a2x2 + a1x1+a0

• Q(x)=bnxn+bn-1xn-1+bn-2xn-2 . . . b2x2 + b1x1+b0

• R(x)= P(x)Q(x)=a0b0 + a0b1x1+a0b2x2 + . .+ a0bn-2xn-2 + a0bn-1xn-1 + a0bnxn

a1b0x+ a1b1x2+a1b2x3 + . .+ a1bn-2xn-1 + a1bn-1xn + a1bnxn+1

a2b0 x2+ a2b1x3+a2b2x4 + . .+ a2bn-2xn + a2bn-1xn+1 + a2bnxn+2

.

.

.

Page 15: الگوریتم9-2:  ضرب اعداد صحیح بزرگ

• R(x)= P(x)Q(x)=a0b0 + a0b1x1+a0b2x2 + . .+ a0bn-2xn-2 + a0bn-1xn-1 + a0bnxn

a1b0x+ a1b1x2+a1b2x3 + . .+ a1bn-2xn-1 + a1bn-1xn + a1bnxn+1

a2b0 x2+ a2b1x3+a2b2x4 + . .+ a2bn-2xn + a2bn-1xn+1 + a2bnxn+2

.

.

.a0b0

Page 16: الگوریتم9-2:  ضرب اعداد صحیح بزرگ

• R(x)= P(x)Q(x)=a0b0 + a0b1x1+a0b2x2 + . .+ a0bn-2xn-2 + a0bn-1xn-1 + a0bnxn

a1b0x+ a1b1x2+a1b2x3 + . .+ a1bn-2xn-1 + a1bn-1xn + a1bnxn+1

a2b0 x2+ a2b1x3+a2b2x4 + . .+ a2bn-2xn + a2bn-1xn+1 + a2bnxn+2

.

.

.a0b0 + (a1b0+a0b1)x +

Page 17: الگوریتم9-2:  ضرب اعداد صحیح بزرگ

• R(x)= P(x)Q(x)=a0b0 + a0b1x1+a0b2x2 + . .+ a0bn-2xn-2 + a0bn-1xn-1 + a0bnxn

a1b0x+ a1b1x2+a1b2x3 + . .+ a1bn-2xn-1 + a1bn-1xn + a1bnxn+1

a2b0 x2+ a2b1x3+a2b2x4 + . .+ a2bn-2xn + a2bn-1xn+1 + a2bnxn+2

.

.

.a0b0 + (a1b0+a0b1)x + (a0b2 + a1b1 + a2b0)x2 +

Page 18: الگوریتم9-2:  ضرب اعداد صحیح بزرگ

• R(x)= P(x)Q(x)=a0b0 + a0b1x1+a0b2x2 + . .+ a0bn-2xn-2 + a0bn-1xn-1 + a0bnxn

a1b0x+ a1b1x2+a1b2x3 + . .+ a1bn-2xn-1 + a1bn-1xn + a1bnxn+1

a2b0 x2+ a2b1x3+a2b2x4 + . .+ a2bn-2xn + a2bn-1xn+1 + a2bnxn+2

.

.

.a0b0 + (a1b0+a0b1)x + (a0b2 + a1b1 + a2b0)x2 + . . .

•k ام =ci=جمله

k

i=0•R(x)= P(x)Q(x)=

2n

i=0

cixi

aibk-i

Page 19: الگوریتم9-2:  ضرب اعداد صحیح بزرگ

•R(x)= P(x)Q(x)=

2n

i=0

cixi

دو به بنابراین : forنیاز محاسبه O(n2)برای

Page 20: الگوریتم9-2:  ضرب اعداد صحیح بزرگ

وحل تقسیم روشایها جمله چند ضرب برای

• R(x)= P(x)Q(x)

• P(x) =Ax(n/2) + B• Q(x) = C x(n/2) + D

•A , B ,C ,D مرتبه از ای جمله .n/2جند است • R(x)= P(x)Q(x)=(Ax(n/2)+B)(Cx(n/2) +D)• = ACxn +(AD+BC)x(n/2)+BD

ها • ضرب . 4تعداد است تا• ضرب T(n)=4T(n/2)+cn عمل• T(n)=θ(n2)

• . است نشده بهتر الگوریتم

Page 21: الگوریتم9-2:  ضرب اعداد صحیح بزرگ

• R(x)= P(x)Q(x)=(Ax(n/2)+B)(Cx(n/2) +D)• = ACxn +(AD+BC)x(n/2)+BD

• AD+BC=(A-B)(D-C)+AC+BD

• R(x)= ACxn +((A-B)(D-C)+AC+BD)x(n/2)+BD• R(x)= ACxn +((A-B)(D-C)+AC+BD)x(n/2)+BD

•. است الزم ضرب سه• T(n)=3T(n/2)+cn• T(n)= θ(nlog 3)

• . است بهتر عملکرد