CINTA 作业一

1.用C语言实现一种迭代版本的简单乘法。

如下 multiply(int na, int nb)函数即为所求函数。

/* 简单乘法器(程序默认输入,输出均不会发生溢出)
 * 输入:两个整数 na, nb
 * 输出:na * nb 的结果
 */

#include<stdio.h>

typedef long long ll;
ll multiply(int na, int nb)
{
	if(b == 0) return 0;
	
	ll ans = 0;
	do {
		if (nb & 1) ans += na;
		na *= 2;
	} while (nb >>= 1);

	return ans;
}
int main()
{
	int na = 0, nb = 0;
	ll mul = 0;
	printf("Please enter 2 numbers to get them multiplied: ");
	scanf("%d%d", &na, &nb);

	mul = multiply(na, nb);
	printf("The answer of %d * %d is: %d", na, nb, mul);

	return 0;
}

 

证明题

 

2.证明命题 1.1

证明:

第一部分

∃   k , k 0 ∈ Z \exist\ k,k_0\in \Z  k,k0Z,使得 b = k a ,   c = k 0 b b=ka,\ c=k_0b b=ka, c=k0b

显然

c = k 0 k a , k 0 k ∈ Z c = k_0ka,k_0k\in\Z c=k0kak0kZ

证毕。

第二部分

∃   k , k 0 ∈ Z \exist\ k,k_0\in \Z  k,k0Z,使得 a = k c ,   b = k 0 c a=kc,\ b=k_0c a=kc, b=k0c

显然

m a + n b = m k c + n k 0 c = ( m k + n k 0 ) c , m k + n k 0 ∈ Z ma+nb = mkc+nk_0c= (mk+nk_0)c,mk+nk_0 \in \Z ma+nb=mkc+nk0c=(mk+nk0)cmk+nk0Z

证毕。
 

3.完成定理 1.1 的证明(除法算法)

证明:

存在性

构造集合

S = { a − b k : k ∈ Z 且 a − b k ≥ 0 } . S = \{ a-bk:k \in \Z 且 a-bk \geq 0 \}. S={abk:kZabk0}.

显然,集合 S S S 非空。由良序原则, 存在一个最小元 r ∈ S r \in S rS ,且 r = a − q b r = a- qb r=aqb。因此, a = q b + r , r ≥ 0 a=qb+r,r\geq0 a=qb+r,r0

假设存在 r 0 ≥ b r_0\geq b r0b,使得 a = q 0 b + r 0 a = q_0b+r_0 a=q0b+r0
那么显然存在整数 k , q 和 r k , q 和 r k,qr 使得
a = q 0 b + r 0 = q 0 b + k b + r = ( q 0 + k ) b + r = q b + r ,    r < 0 。 a= q_0b+r_0 = q_0b+kb+r=(q_0+k)b+r =qb+r, \ \ r <0。 a=q0b+r0=q0b+kb+r=(q0+k)b+r=qb+r,  r<0
证毕。

唯一性

设对于整数对 q , r ∈ Z q,r \in \Z q,rZ ∃   q 0 ≠ q , r 0 ≠ r ∈ Z \exist\ q_0\neq q,r_0 \neq r\in \Z  q0=q,r0=rZ ,使得对于任意给定 a , b > 0 ∈ Z , 使 得    a = q b + r , a = q 0 b + r 0 a,b>0 \in \Z, 使得\ \ a = qb+r, a=q_0b+r_0 a,b>0Z,使  a=qb+r,a=q0b+r0 同时成立。
显然, ∃ k ∈ Z , \exist k \in \Z, kZ, 使得 k = q − q 0 k = q-q_0 k=qq0
故有 a = q b + r = ( q 0 + k ) b + r = q 0 b + k b + r = q 0 b + r 0 a = qb+r =(q_0+k)b+ r = q_0b+kb+r = q_0b+r_0 a=qb+r=(q0+k)b+r=q0b+kb+r=q0b+r0
显然 r 0 = k b + r r_0=kb+r r0=kb+r
k > 0 时 , r 0 ≥ b ;   k < 0 时 , r 0 < 0 ; k > 0时,r_0\geq b;\ k<0时,r_0<0; k>0r0b; k<0r0<0;
当且仅当 k = 0 时 , 0 ≤ r = r 0 < b k = 0时,0\leq r= r_0 < b k=00r=r0<b
显然,此时 q = q 0 q= q_0 q=q0
证毕。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值