设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
智能计算—— LinuxSir.cn
›
Linux及计算机学科基础理论版
›
[算法]怎么用1-9构造出前N位可以被N整除的9位数 ...
1
2
/ 2 页
下一页
返回列表
查看:
3238
|
回复:
17
[算法]怎么用1-9构造出前N位可以被N整除的9位数
[复制链接]
bbbush
bbbush
当前离线
积分
5395
IP卡
狗仔卡
发表于 2005-10-24 11:58:01
|
显示全部楼层
|
阅读模式
rt, thanks
每个数字只能使用一次
大概是 5 的数字肯定在 5 位置上
偶数肯定在偶数位置上,奇数在奇数位置上
每三位一组的数字肯定可以被 3 整除,于是中间三个数字必然是 258 或者 456,因为 258 对 3 的余数都是 2,而 456 对 3 的余数分别是 1, 2, 3
接下来需要验证的是 147,258,369 的组合,以及 123, 183, 129, 189, 327, 387, 927, 987 和 456 的组合,但是这个过程怎么用程序表示呢?
题目来源是培垠老兄,cpperl
原题目只有标题和“每个数字只能使用一次”的说明
-
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
herberteuler
herberteuler
当前离线
积分
1620
IP卡
狗仔卡
发表于 2005-10-24 13:35:41
|
显示全部楼层
第 4 位上只能是 2 或 6,因为如果 A3 = a1 + 10 a2 + 100 a3 是奇数,则 A3 被 4 除余 1 或 3。这样,A3 * 10 被 4 除余 2。
回复
支持
反对
使用道具
举报
显身卡
herberteuler
herberteuler
当前离线
积分
1620
IP卡
狗仔卡
发表于 2005-10-24 14:16:14
|
显示全部楼层
下一步,A5 = 10 A4 + 5。
A4 mod 6 可以分成两种情况:a4 = 2 或 a4 = 6。
如果 a4 = 6,则 A4 mod 6 = (10 A3 + 6) mod 6 = 0,于是 (10 A5) mod 6 = 2,所以 a6 必是 4。
如果 a4 = 2,则 A4 mod 6 = (10 A3 + 2) mod 6 = 2,于是 (10 A5) mod 6 = (100 A4 + 50) mod 6 = 250 mod 6 = 4,所以 a6 必是 2 或 8。
假设 a_k 是第 k 位上的数,而 An = A_(n-1) * 10 + an,并且 A1 = a1。
回复
支持
反对
使用道具
举报
显身卡
herberteuler
herberteuler
当前离线
积分
1620
IP卡
狗仔卡
发表于 2005-10-24 14:36:50
|
显示全部楼层
用类似的方法可以推知,第 7 位上只能是 1,3,或 7。
回复
支持
反对
使用道具
举报
显身卡
herberteuler
herberteuler
当前离线
积分
1620
IP卡
狗仔卡
发表于 2005-10-24 14:38:54
|
显示全部楼层
第 8 位上只能是 2 或 6。
回复
支持
反对
使用道具
举报
显身卡
herberteuler
herberteuler
当前离线
积分
1620
IP卡
狗仔卡
发表于 2005-10-24 14:45:29
|
显示全部楼层
这样,数字的形式只能是:
?8?654?2?
?4?258?6?
回复
支持
反对
使用道具
举报
显身卡
bbbush
bbbush
当前离线
积分
5395
IP卡
狗仔卡
楼主
|
发表于 2005-10-24 14:47:36
|
显示全部楼层
可是这些怎么能写成程序呢
FP 程序员呢?
回复
支持
反对
使用道具
举报
显身卡
herberteuler
herberteuler
当前离线
积分
1620
IP卡
狗仔卡
发表于 2005-10-24 14:49:51
|
显示全部楼层
剩下的只有 4! * 2 = 48 种情况了,程序就好实现了吧。
回复
支持
反对
使用道具
举报
显身卡
herberteuler
herberteuler
当前离线
积分
1620
IP卡
狗仔卡
发表于 2005-10-24 15:01:52
|
显示全部楼层
Post by
herberteuler
用类似的方法可以推知,第 7 位上只能是 1,3,或 7。
用我的推理方法,只有偶数位上的数字比较重要,奇数位上的数字只没用的。所以这个结果就可以被忽略了。
回复
支持
反对
使用道具
举报
显身卡
conwood
conwood
当前离线
积分
864
IP卡
狗仔卡
发表于 2005-10-25 16:32:52
|
显示全部楼层
总结一下吧
1. 第5位数字是5,这个不废话了。
2. 偶数位数字是偶数,奇数位是奇数也不废话了。
3. 第123位、456位、789位组成的三个三位数都可以被3整除。
4. 考虑前4位,表示成abcd的样子,c是奇数,而ab00必然可以被4整除,那么d只能是2或者6。
5. 结合3,4,得知中间3位只能是258或者654。
6. 考虑第7,8位,由于前8位可以表示成abcd5fgh的形式,abcd5000必然可以被8整除,由5得知,f是4或者8,而400和800都可以被8整除,因此关键在7、8位,结合5的结果,知道4-8位只能是25816,25896,65432,65472
7. 789位组成的三位数可以被3整除,因此4-9位只能是258963,654327,654729,654321,654723
8. 偶数都快用光了,考虑第二位,所有可能的数字是
_4_258963
_8_654327
_8_654729
_8_654321
_8_654723
9. 下面只验证前7位对7的整除情况即可,只有10种组合了,对7整除的规律我了解不多,手工尝试也不是太大工作量。
回复
支持
反对
使用道具
举报
显身卡
下一页 »
1
2
/ 2 页
下一页
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
MacOSX & Darwin 讨论专题
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表