我有一个4000,000数据的文件。我正在用python开始编程。我想找到一条到达7到1的路径。但我有一些条件:
1.-路径必须下降,例如:7,6,5 .... 1(希望是连续的),但可以是7,6,3,1。主要目标是下降(第二列)。想象一下,线之间的基板必须= 1才能识别它们
2.-路径不得上升。例如:如果我在7,6,5 ......然后6不正确。下一个5的数字必须是数字4,或其他较低但不是较高的数字。我想象一下,线之间的基板必须为-1才能识别它们
3.-可以重新计算数字。例如,如果我在7,我可以在7之前有一些线传递6并且它会没问题。请记住,主要目标是不上升,下降。我想结果将是常数0或1。
4.-如果其中一个条件是假的,那么:a)再次开始但是在第一行中没有7是7.我的意思是,从下一行开始,其中是7(文件中的第7个),如果有的话不是从7开始的路径,然后取6然后行,依此类推,直到找到到达1的路径.b)或从进程被破坏的最后一行开始。 (我不知道这个选项是否有效)
在简历中,我想找到一条有效的路径从7到1,以递减的方式,并且不要上升。
输入文件是:
1 6
2 6
3 6
4 7
5 7
6 3
7 3
8 5
9 7
10 6
......等等
出档案:
45 7
46 7
47 7
48 7
49 6
50 6
51 5
52 5
53 4
54 3
55 2
56 1
要么
50 7
51 6
52 5
53 4
54 3
55 2
56 1
那么,你能指导我如何做这个过程吗?
非常感谢。
我会为每个数字创建一个finite-state machine状态(7个状态,1到7)。在每一行:
.add_number(parsed_number)
。此函数记住数字并返回三个可能结果之一:
0 - 我不接受这个数字,抛弃我(你必须建模所有状态转换,基本上是从大到小的任何过渡)。
1 - 我接受了号码,什么都不做。
2 - 我接受了号码,号码是1:打印我积累的东西然后扔掉了。