搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ Yang的数表
标题:
Yang的数表
只看楼主
☆註⊙諨☆
等 级:
新手上路
帖 子:73
专家分:0
注 册:2006-10-7
第
11
楼
得分:0
以下是引用
Welton
在2006-11-24 15:39:52的发言:
只要知道数表的位置,也就是知道那两个数相加得到的那个数就行了,就是求解线形方程组了!
说明白点伐...
这样说好含糊呀...
2006-11-25 09:36
我不是郭靖
等 级:
新手上路
威 望:
6
帖 子:494
专家分:6
注 册:2006-10-4
第
12
楼
得分:0
不是一一对应关系,也就是答案不具有唯一性
如 5 6 7 9 10 11
对应着
2 3 4 7
或1 4 5 6
基本思想就是递推
2006-11-25 20:10
Welton
等 级:
论坛游民
帖 子:65
专家分:38
注 册:2006-10-25
第
13
楼
得分:0
其实,这些数字可以看作都是分布在一个立体的空间中,那么这些数字都在一个平面中,可以找到满足相加能得到这些数的所有结果。
用二位数组,两个下标为x,y坐标,而数组值为x+y,而所有的数都在可以写作(x,y,x+y),可以看到,这些数字在固定数的直线上,比如说上边例子,就有6条直线。可以把不满足条件的,数组值赋为某值(比如0)以便区分是否满足条件。而,原先的数(我们将要求得)是有,大小顺序的,最小的数不会大于,数表中最小数的1/2,因此以第一个数作叠代,迭代条件符合时,所涉及的所有下标既是所要求的。
条件:可以用迷宫方法,设的数组有两个下标,直到第一个后,当有该值下标的数在数表中,可以得到另外一个下标值,(该下标知道我们怎样走下一步)。如果依次做下去,必定能够循环,如果循环到shumu+1(shumu是原先数字的个数,可以设n为数表的个数,则满足shumu*(shumu-1)==n*2时即可)如果得到的是我们第一个最小的数字,即表示成功。当然要把满足全部条件的数挨个验证,确实很麻烦,而且思路要完全正确,否则错误是难免的。
只是喜欢编程而已!
2006-11-26 12:27
13
2/2页
1
2
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-98483-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.020485 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved