重开一贴:求证2个或以上的连续正整数之和,不可能等于2的n次方

神马被哪个妞占用了呢 2012-05-10 12:45:06
也就是说,2的n次方不等于几个连续的正整数之和。附测试工具:
Private Sub Command1_Click()
Cls
Dim i As Long, s As String, TotalNum As Long
TotalNum = Val(InputBox("输入总和", , 1000))
For i = 1 To TotalNum / 2
If TotalNum / i - (i - 1) / 2 < 1 Then Me.Caption = "循环到" & i: Exit For
If TotalNum Mod i = 0 Then
If i Mod 2 = 1 Then '连续个数为奇数
s = TotalNum / i - (i - 1) / 2 & "到" & TotalNum / i + (i - 1) / 2
Print s
End If
ElseIf TotalNum Mod i = i * 0.5 Then '连续个数为偶数
s = TotalNum / i - (i - 1) / 2 & "到" & TotalNum / i + (i - 1) / 2
Print s
End If
Next
End Sub
...全文
392 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
咸清 2012-05-10
  • 打赏
  • 举报
回复
不会,特来捣乱。
老鸟的论证很精彩
Tiger_Zhao 2012-05-10
  • 打赏
  • 举报
回复
反证:
n 个连续正整数 {a1,a2,...,am} 的和 S 的计算公式为 S = n * (a1 + an) / 2
假设 S 为 2 的幂,那么 n 和 (a1 + an) 都必须是 2 的幂
由连续整数 an = a1 + n - 1
推得 (a1 + an) = 2 * a1 + n - 1
其中 2 * a1 和 n 都是偶数,所以 (a1 + an) 是奇数,不可能是 2 的幂
矛盾!
阿呆哥 2012-05-10
  • 打赏
  • 举报
回复
好像高中数学里有,叫什么推到的。
worldy 2012-05-10
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 的回复:]
引用 12 楼 的回复:
嗯嗯……还是要根据p的来。
当偶数个相邻的正整数相加时,均数为(第一个数+最后一个数)÷2,其小数位肯定是0.5
总和=均数×个数=均数×2×个数÷2
均数×2肯定=一个奇数,而个数÷2=一个整数
那么总和的因数中包含奇数,所以它肯定不等于2的n次方


这个证明应该没有漏洞,但是个数为奇数时,应该还有问题
[/Quote]

还是LZ有道理
假设连和个数为奇数m

s=a1+a2+ak (k=m-1)
s=(a1+ak)*m/2 肯定为整数
因为m为奇数,所以,(a1+ak)/2=sa肯定为整数

所以
s=sa * m
包含有奇数的因素,但2^K 任何因子肯定都是偶数,因此s肯定不会是2^K
worldy 2012-05-10
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]
嗯嗯……还是要根据p的来。
当偶数个相邻的正整数相加时,均数为(第一个数+最后一个数)÷2,其小数位肯定是0.5
总和=均数×个数=均数×2×个数÷2
均数×2肯定=一个奇数,而个数÷2=一个整数
那么总和的因数中包含奇数,所以它肯定不等于2的n次方
[/Quote]

这个证明应该没有漏洞,但是个数为奇数时,应该还有问题
  • 打赏
  • 举报
回复
嗯嗯……还是要根据p的来。
当偶数个相邻的正整数相加时,均数为(第一个数+最后一个数)÷2,其小数位肯定是0.5
总和=均数×个数=均数×2×个数÷2
均数×2肯定=一个奇数,而个数÷2=一个整数
那么总和的因数中包含奇数,所以它肯定不等于2的n次方
worldy 2012-05-10
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]
我数学只有初中水平…我的理解跟poslin差不多:

因为2的n次方其因数不含奇数。(2×2×2×2......×2)
当连续相加的个数为奇数个时,其和肯定能被这个个数(奇数)整除,所以它的和不是2的n次方;
当连续相加的个数为偶数个时,其和肯定为奇数,所以它的和也不是2的n次方。
而连续正整数的个数只能是这2种情况。所以m个连续的正整数相加,其和肯定不是2的n次方。

感谢posl……
[/Quote]

呵呵,不会吧?我有这么大的面子啊,谢谢谢谢谢谢
worldy 2012-05-10
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]
我数学只有初中水平…我的理解跟poslin差不多:

因为2的n次方其因数不含奇数。(2×2×2×2......×2)
当连续相加的个数为奇数个时,其和肯定能被这个个数(奇数)整除,所以它的和不是2的n次方;
当连续相加的个数为偶数个时,其和肯定为奇数,所以它的和也不是2的n次方。
而连续正整数的个数只能是这2种情况。所以m个连续的正整数相加,其和肯定不是2的n次方。

感谢posl……
[/Quote]

当连续相加的个数为偶数个时,其和肯定为奇数,所以它的和也不是2的n次方。
这个结论不成立:

(n+1)+(n+2)+(n+3)+(n+4)=4n+10 是个偶数,推而广之,个数为4的倍数时,连续数之和肯定为偶数
  • 打赏
  • 举报
回复
网络弄好了,3根电信1根联通,掉线切换、DNS转换完毕。没睡意,去修修设备去……
  • 打赏
  • 举报
回复
草草好久不见哦……
木有写代码。在调试网络呢……艹蛋的,白天不好干事呢……
  • 打赏
  • 举报
回复
我数学只有初中水平…我的理解跟poslin差不多:

因为2的n次方其因数不含奇数。(2×2×2×2......×2)
当连续相加的个数为奇数个时,其和肯定能被这个个数(奇数)整除,所以它的和不是2的n次方;
当连续相加的个数为偶数个时,其和肯定为奇数,所以它的和也不是2的n次方。
而连续正整数的个数只能是这2种情况。所以m个连续的正整数相加,其和肯定不是2的n次方。

感谢poslin,Worldy,dianyancao,tiger_zhao 等大大的回答,还有各位捧场的朋友。
就等worldy来结帖了……
lxq19851204 2012-05-10
  • 打赏
  • 举报
回复
连续数的特征就是有中位数

当连续数为奇数时,奇数*中位数<>2的N次方
当连续数为偶数时,(偶数/2)*中位数(偶数+奇数=奇数)<>2的N次方
dianyancao 2012-05-10
  • 打赏
  • 举报
回复
呵呵,这么晚了还没睡,用不着写代码吧?

连续正整数的公差D是 1 吗?,如果公差D是奇数,比如D=1,是正确的。
但是如果D是偶数,能构造下列等差数组,满足总和为2^(m+p)形式,(m,p∈ℕ+)

设等差数列首项为A1,公差为D,一共N项,那么总和S=(N*(N-1)*D/2)+N*A1
构造D=2*n,N=2^p,A1=2^m-(2^p-1)*n (n,p,m∈ℕ+)
那么总和S=n*(2^p*(2^p-1)+2^p*(2^m-(2^p-1)*n))
整理得S=2^(m+p)

即若公差D是偶数有反例,比如1,3,5,7, S=2^4

如果D是奇数,根据上述丢番图方程的解:
A1=(2^m-(2^p-1)*D)/2
不难看出这里的D必须含有因子2。

综上所述,连续的正整数的公差D为奇数时,总和S不会等于2的n次方(n∈Z)
贝隆 2012-05-10
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
反证:
n 个连续正整数 {a1,a2,...,am} 的和 S 的计算公式为 S = n * (a1 + an) / 2
假设 S 为 2 的幂,那么 n 和 (a1 + an) 都必须是 2 的幂
由连续整数 an = a1 + n - 1
推得 (a1 + an) = 2 * a1 + n - 1
其中 2 * a1 和 n 都是偶数,所以 (a1 + an) 是奇数,不可能是 2……
[/Quote]
莫非赵老虎是传说中的奥赛冠军?

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧