1. 用 C 语言编程实现一种迭代版本的简单乘法
#include<iostream>
using namespace std;
int multiply(int a,int b);
int main()
{
int a,b;
cout<<"输入两个数:";
cin>>a>>b;
cout<<"结果:"<<multiply(a,b);
}
int multiply(int a,int b)
{
int sum=0;
while(b!=0)
{
if(b&1==1)
{
sum+=a;
}
b>>=1;
a<<=1;
}
return sum;
}
2.证明命题1.1。
下面将分别证明命题的前一句话和后一句话
证明1:
∵ a ∣ b , b ∣ c ∴ 存 在 唯 一 整 数 p , q 使 得 b = a p − ( 1 ) c = b q − ( 2 ) 将 ( 1 ) 式 代 入 ( 2 ) 式 , 可 得 c = a ∗ p q 又 ∵ p , q ∈ Z ∴ p q ∈ Z ∴ a ∣ c \because a\mid b ,b\mid c \\ \therefore 存在唯一整数p,q使得 \\ b=ap -(1) \newline c=bq-(2) \newline 将(1)式代入(2)式,可得 \newline c=a *pq \newline 又 \because p,q \in \mathbb{Z} \\\therefore pq \in \mathbb{Z} \\\therefore a\mid c ∵a∣b,b∣c∴存在唯一整数p,q使得b=ap−(1)c=bq−(2)将(1)式代入(2)式,可得c=a∗pq又∵p,q∈Z∴pq∈Z∴a∣c
证明2:
∵ c ∣ a , c ∣ b ∴ 存 在 唯 一 整 数 p , q 使 得 a = c p − ( 1 ) b = c q − ( 2 ) 将 ( 1 ) 、 ( 2 ) 式 代 入 c ∣ ( m a + n b ) 可 得 c ∣ ( m p + n q ) c 又 ∵ p , q , m , n ∈ Z ∴ ( m p + n q ) ∈ Z ∴ c ∣ ( m a + n b ) \because c\mid a ,c\mid b \\ \therefore 存在唯一整数p,q使得 \\ a=cp-(1) \\ b=cq-(2) \newline 将(1)、(2)式代入 c\mid (ma+nb) \\ 可得 c\mid (mp+nq)c \newline 又 \because p,q ,m,n\in \mathbb{Z} \\\therefore (mp+nq) \in \mathbb{Z} \\\therefore c\mid (ma+nb) ∵c∣a,c∣b∴存在唯一整数p,q使得a=cp−(1)b=cq−(2)将(1)、(2)式代入c∣(ma+nb)可得c∣(mp+nq)c又∵p,q,m,n∈Z∴(mp+nq)∈Z∴c∣(ma+nb)
3.完成定理1.1的证明(除法算法)
分别证明其存在性和唯一性
存在性证明:
构造集合
S
=
{
a
−
b
k
:
k
∈
Z
且
a
−
b
k
≥
0
}
S= \left\{a-bk:k\in\ \mathbb{Z} 且a-bk\geq 0\right\}
S={a−bk:k∈ Z且a−bk≥0}
显然,集合为非空,由良序原则,存在一个最小元
r
∈
S
r\in S
r∈S,且
r
=
a
−
q
b
r=a-qb
r=a−qb。因此有
a
=
q
b
+
r
,
r
≥
0
a=qb+r,r\geq 0
a=qb+r,r≥0。
接下来证明 r < b r<b r<b。我们假设 r ≥ b r\geq b r≥b,则当 k = q + 1 k=q+1 k=q+1 时, 则有 a − b ( q + 1 ) = r − b ≥ 0 a-b(q+1)=r-b\geq 0 a−b(q+1)=r−b≥0,这表明 a − b ( q + 1 ) ∈ S a-b(q+1)\in S a−b(q+1)∈S,而又因为 a − b ( q + 1 ) < a − b q a-b(q+1)<a-bq a−b(q+1)<a−bq,而 r = a − b q r=a-bq r=a−bq,这与 r r r是 S S S中最小元素的定义矛盾,因此假设不成立,则有 r < b r< b r<b,存在性证毕。
唯一性证明:
假设还存在整数
r
′
,
q
′
r',q'
r′,q′,使得
a
=
q
′
b
+
r
′
,
0
≤
r
′
≤
b
a=q'b+r',0\leq r'\leq b
a=q′b+r′,0≤r′≤b。
则有
q
b
+
r
=
q
′
b
+
r
′
qb+r=q'b+r'
qb+r=q′b+r′,转化则有
b
(
q
′
−
q
)
=
r
′
−
r
b(q'-q)=r'-r
b(q′−q)=r′−r,假设
r
′
≥
r
r'\geq r
r′≥r,则有
0
≤
r
′
−
r
≤
r
′
<
b
0\leq r'-r\leq r'<b
0≤r′−r≤r′<b。
而又因为
q
′
−
q
∈
Z
q'-q\in \mathbb{Z}
q′−q∈Z ,则
b
(
q
′
−
q
)
∈
(
b
,
+
∞
)
∩
(
−
∞
,
−
b
)
∩
0
b(q'-q)\in(b,+\infty )\cap(-\infty,-b)\cap0
b(q′−q)∈(b,+∞)∩(−∞,−b)∩0,即有
r
′
−
r
∈
(
b
,
+
∞
)
∩
(
−
∞
,
−
b
)
∩
0
r'-r\in(b,+\infty )\cap(-\infty,-b)\cap0
r′−r∈(b,+∞)∩(−∞,−b)∩0。要想使
r
′
−
r
r'-r
r′−r同时满足上面两个式子,当且仅当
r
′
=
r
r'=r
r′=r,此时也有
q
′
=
q
q'=q
q′=q,唯一性证毕。