演算法導論習題2 1 4

2021-07-06 04:56:43 字數 1109 閱讀 7869

#-*- coding:utf-8 -*-

'''exercises 2.1-4:

consider the problem of adding two n-bit binary integers,

stored in two n-element arrays a and b. the sum of the two

integers should be stored in binary form in an (n + 1)-element

array c. state the problem formally and write pseudocode for

adding the two integers.

演算法思想:

我們可以將兩個陣列看做是兩個邏輯運算單元的暫存器。

暫存器中的數相加的時候需要乙個暫存器儲存進製,實際

中相加的數有三個,即兩個陣列中的數和進製暫存器中的

進製。相加結果如果大於1,則必須進製,即進製暫存器

裡的數要加1。

'''def sum_binary(a, b, n):

count = 0

c = [0] * (n + 1)

for i in range (n - 1, -1, -1):

c[i + 1] = a[i] + b[i] + count

if c[i + 1] <= 1:

count = 0

elif c[i + 1] == 2 :

c[i + 1] = 0

count = 1

elif c[i + 1] ==3 :

c[i + 1] =1

count = 1

#c陣列的第一位存入最後一步運算得到的進製值

c[0] = count

return c

a = [1, 0, 0, 1, 1, 1]

b = [0, 1, 1, 1, 0, 1]

print u'a陣列儲存的二進位制數是:',a

print u'b陣列儲存的二進位制數是:',b

print u'陣列二進位制數之和為:', sum_binary(a, b, len(a))

演算法導論 習題2 1 4

有兩個各存放在陣列a和b中的n位二進位制整數,考慮它們的相加問題。兩個整數的和以二進位制形式存放在具有 n 1 個元素的陣列c中。請給出這個問題的形式化描述,並寫出偽 以下是我寫的c 如有錯誤請指出 include stdafx.h include include define n 20 using...

演算法導論Ch2 1 4習題

題目 有兩個各存放在陣列a和b中的n位二進位制整數,考慮它們的相加問題。兩個整數的和以二進位制形式存放在具有 n 1 個元素的陣列c中。請給出這個問題的形式化描述,並寫出偽 分析 二進位制整數的編碼,此處考慮原碼和補碼,原碼可以通過轉化成補碼來運算,這也體現了補碼在運算上的優勢。實質為模擬計算機二進...

演算法導論2 1 4

有兩個各存放在陣列a和b中的n位二進位制整數,考慮他們的相加問題。翻譯的夠爛 兩個整數的和存放在有n 1個元素的陣列c中,請給出這個問題的形式化描述,並給出偽 考慮兩個1位二進位制數a和b,假設它們的和c是個2位二進位制數,c 1 a 在考慮兩個2位二進位制數 當第一位相加時,先計算進製位c2 a1...