shuangyeying 发表于 2016-4-2 09:07

viviczh 发表于 2016-4-1 23:31
果然气派,本人C渣渣,第二部分表示看的不是很懂,相邻数做成数组是不是只有双位数?

我C也是初学水瓶。上面的代码不完整,还没有写好啦。
怎么循环的清楚,就是不会格式化输出密码。

具体数组是这样的,把上面的数组写成一个10行4列的数组p。
假设第一个密码i=6的话,第二个密码(与i=6相邻的数字)就在第七行p取得。
j代表的列从0-3循环,就取得第二个密码p=3或p=5或p=9。


总之就是:
已知前一位密码k=p,后一位密码所在行就是p行。
      后一位密码k=k+1=p[p]。


这里k代表密码位数,从1取到7。
       i代表第一位密码的取值,从0取到9。
       j代表每行数组的列,从0取到3。


理论上来说i,j,k做一个3重的循环,密码就出来啦。
具体的实现先占个地方,然后再想想看怎么写。










heham 发表于 2016-4-2 12:14

还是Excel来搞估计不错,但是时间是个问题

骇客帝国 发表于 2016-4-2 22:48

有点意思,不过似乎可以用排除法试试
比如:去掉相邻重复的00、11、22、33、44等;在去掉斜向的48、84、68、86、07、70、10、20、30等

骇客帝国 发表于 2016-4-3 01:07

本帖最后由 骇客帝国 于 2016-4-3 10:31 编辑


键盘不相邻字符及重复按键
<注:以版主给出的键盘图案列出>
00、11、22、33、44、55、66、77、88、99
01、02、03、04、05、06、07、09
13、15、16、17、18、19、10
24、26、27、28、29、20
31、34、35、37、38、39、30
42、43、46、48、49、40
51、53、57、59、50
61、62、64、67、68、60
71、72、73、75、76、79、70
81、82、83、84、86
91、92、93、94、95、97、90










骇客帝国 发表于 2016-4-3 15:20

顺便说一下,本帖子高亮设置的底色太深,帖子标题有点看不清了:lol

viviczh 发表于 2016-4-3 23:15

骇客帝国 发表于 2016-4-3 15:20
顺便说一下,本帖子高亮设置的底色太深,帖子标题有点看不清了

等你很久了哈,知道你最感兴趣这玩意了。

随风飘 发表于 2016-4-4 11:15

本帖最后由 随风飘 于 2016-4-4 12:14 编辑

08
085
0852
12
123
14
147
21
23
25
258
2580
32
321
36
369
41
45
456
47
52
54
56
58
63
65
654
69
74
741
78
789
80
85
852
87
89
96
963
98
能写个代码就很快:lol用相邻的数字排列,每组相邻每行只用一次就可,是这个意思吧。



随风飘 发表于 2016-4-4 11:23

本帖最后由 随风飘 于 2016-4-4 11:30 编辑

可是我不会写代码,接下来是个麻烦事。只能借助辅助工具:
还是上个图:我做4位到以上的最多排列5次,
第一步合成,这个工具应都知道:


第二步花几分钟去重意思一下,反正很快的。




第三步是关键,要求是每组相邻只能用一次是吧
那就去掉每组相邻用了两次以上的行。:;P中中去吃了个早餐11:10做了一个式子,也是4分钟去重完毕,收工500MB感觉有点大
排列四次感觉又太小。



随风飘 发表于 2016-4-4 11:29

随风飘 发表于 2016-4-4 11:23
可是我不会写代码,接下来是个麻烦事。只能借助辅助工具:
还是上个图:我做4位到以上的最多排列5次,
第 ...

结果不知道正确不
.
.
.
.
.
.
.
.

骇客帝国 发表于 2016-4-4 11:33

随风飘 发表于 2016-4-4 11:29
结果不知道正确不
.
.


我觉得你这个去相邻重复可能会出错

比如:98989898这样的也符合滚动要求

骇客帝国 发表于 2016-4-4 11:36

随风飘 发表于 2016-4-4 11:29
结果不知道正确不
.
.


像你这个里面列出的最后一个9896878580    9896与878580之间就跳键盘了8与6是斜向相邻,不符合楼主提出的要求

随风飘 发表于 2016-4-4 11:40

本帖最后由 随风飘 于 2016-4-4 11:47 编辑

四次排列就一分钟不到完成全部过程:上传成品附件参考:




页: 1 [2] 3 4 5
查看完整版本: 跑包区字典制作赛第二季