写一个小程序(数字分析方面)
任务开始时间:2008-03-10 13:38 任务结束时间:2008-03-11 11:26
当前任务已有:5952 人关注 0 条交流信息 7 人报名参加 2 个提交作品 1 人中标
写个数据处理程序,大概内容如下
数据存放在EXCEL文件里面如下两列:
319 111
849 11x
405 2o1
271 2x1
985 121
339 111
925 121
389 121
717 x1x
827 22x
以上数据分两列,程序处理的步骤大概就是
第一节、寻找到符合条件的行
1.对第二列的数据进行一行一行的分析,如果发现连续两行以上没出现o或者x就对最近的一行进行分析
通过上面的事例可以看出
271 2x1
985 121
339 111(对这行进行分析)
925 121(对这行进行分析)
第二节、对符合条件的行进行分析,找出结果
(1)那么对339进行分析,因为第一列的数字都是3位数,我的目的就要从这3个数中选择一个最特别的数。
方法如下:
1.如果3位数中有3个重复那么就选择它作为一个特殊数字如666,如果是偶数者定在百位,都是奇数就取个位。
2.如果3位数中有2个重复的那么就直接取不重复的那个数字如339,我们就直接取个位的9。
3.如果3位数中都不重复在看奇偶比例如奇多取偶,偶多取奇,如342是偶多就取百位的3了。
(2)现在我们把这个特殊数字找到后就要在第一列上进行寻找,如上例子所示339,我们取的是个位的9,那就在第一列向上查找是否有哪个3位数的个位数是9,如果没找到就向下进行扫描(优先级是先上后下)。最后找不到就不做任何处理。
(3)如果找到这样的那么就寻找该行的第二列的相同位(例外如果该列的相同位出现o或者x就继续向上寻找第一列的个位是9的行),如上例所示我们先向上寻找到的是849,然后看849这行的第二列的个位,发现该位是x所以不成功,还要继续向上寻找,此时我们找到了319,然后看他所在行的第二列的个位,发现个位是1,这次寻找成功。
第三节、找出最后的结果
(1)经过以上例子的寻找我们找到了1做为第一阶段的结果,然后我们与339的下一行的第二列的个位进行对比,我们可以看到该列121的个位是 1,表示匹配的第一个条件满足。第二个条件就是该列121的十位和百位要含有一个o或者x,但是不能同时存在,也就是说出现ox1也是不成立的。如果前两个条件满足那么这就是我们最后判断的结果成功。
(2)如果经过以上的条件测试,对连续7次都没有满足条件获得最终成功。那么我就将忽略第二节的条件,直接进入第三节进行判断最后是否成功。(注:为什么一直看的是个位,因为我们选的特别数字9是在个位)
第四节、生成最后的输出结果
如下部分就是最后的结果样式
列数 倍数 投入分 得分 总分
b1 1 -256 0 -256
b1 1 -256 0 -512
b1 1 -256 0 -768
b1 2 -512 0 -1256
b1 2 -512 2000 768
以下就是有符合条件的行如果每次都没寻找成功所需要投入的倍数
1、1、1、2、2、3、4、8、17、35、78、180、380、750、1600、3280
列数:因为愿数据不只一列所以这里吧列数给列出来
倍数:也就是上面列表所产生的
1、1、1、2、2、3、4、8、17、35、78、180、380、750、1600、3280
投入分:表示1-4这个倍数范围内投入的基数是-256,8以后的基数就是-512
得分:就是最终条件获得成功以后那就得分,基数是1000。如果前面是2倍那就是2000
总分:把以往所花掉的分数于得到的分数相减,就是最后的得分
数据存放在EXCEL文件里面如下两列:
319 111
849 11x
405 2o1
271 2x1
985 121
339 111
925 121
389 121
717 x1x
827 22x
以上数据分两列,程序处理的步骤大概就是
第一节、寻找到符合条件的行
1.对第二列的数据进行一行一行的分析,如果发现连续两行以上没出现o或者x就对最近的一行进行分析
通过上面的事例可以看出
271 2x1
985 121
339 111(对这行进行分析)
925 121(对这行进行分析)
第二节、对符合条件的行进行分析,找出结果
(1)那么对339进行分析,因为第一列的数字都是3位数,我的目的就要从这3个数中选择一个最特别的数。
方法如下:
1.如果3位数中有3个重复那么就选择它作为一个特殊数字如666,如果是偶数者定在百位,都是奇数就取个位。
2.如果3位数中有2个重复的那么就直接取不重复的那个数字如339,我们就直接取个位的9。
3.如果3位数中都不重复在看奇偶比例如奇多取偶,偶多取奇,如342是偶多就取百位的3了。
(2)现在我们把这个特殊数字找到后就要在第一列上进行寻找,如上例子所示339,我们取的是个位的9,那就在第一列向上查找是否有哪个3位数的个位数是9,如果没找到就向下进行扫描(优先级是先上后下)。最后找不到就不做任何处理。
(3)如果找到这样的那么就寻找该行的第二列的相同位(例外如果该列的相同位出现o或者x就继续向上寻找第一列的个位是9的行),如上例所示我们先向上寻找到的是849,然后看849这行的第二列的个位,发现该位是x所以不成功,还要继续向上寻找,此时我们找到了319,然后看他所在行的第二列的个位,发现个位是1,这次寻找成功。
第三节、找出最后的结果
(1)经过以上例子的寻找我们找到了1做为第一阶段的结果,然后我们与339的下一行的第二列的个位进行对比,我们可以看到该列121的个位是 1,表示匹配的第一个条件满足。第二个条件就是该列121的十位和百位要含有一个o或者x,但是不能同时存在,也就是说出现ox1也是不成立的。如果前两个条件满足那么这就是我们最后判断的结果成功。
(2)如果经过以上的条件测试,对连续7次都没有满足条件获得最终成功。那么我就将忽略第二节的条件,直接进入第三节进行判断最后是否成功。(注:为什么一直看的是个位,因为我们选的特别数字9是在个位)
第四节、生成最后的输出结果
如下部分就是最后的结果样式
列数 倍数 投入分 得分 总分
b1 1 -256 0 -256
b1 1 -256 0 -512
b1 1 -256 0 -768
b1 2 -512 0 -1256
b1 2 -512 2000 768
以下就是有符合条件的行如果每次都没寻找成功所需要投入的倍数
1、1、1、2、2、3、4、8、17、35、78、180、380、750、1600、3280
列数:因为愿数据不只一列所以这里吧列数给列出来
倍数:也就是上面列表所产生的
1、1、1、2、2、3、4、8、17、35、78、180、380、750、1600、3280
投入分:表示1-4这个倍数范围内投入的基数是-256,8以后的基数就是-512
得分:就是最终条件获得成功以后那就得分,基数是1000。如果前面是2倍那就是2000
总分:把以往所花掉的分数于得到的分数相减,就是最后的得分
- 当前还没有用户发布任务交流信息,我来说两句
最新提交的任务作品




2