>我有一个包含 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 开始的路径,则取 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
那么,你能指导我如何做这个过程吗?
多谢。
我会创建一个有限状态机,每个数字都有一个状态(7 个状态,1 到 7)。在每行:
- 如果当前行上的数字是 7:创建机器的新实例(它将是一个类)并将其推送到"活动"自动机列表中。
- 在所有计算机上调用
.add_number(parsed_number)
。此函数记住数字并返回以下三种可能的结果之一:- 0 - 我不接受这个数字,把我扔掉(你必须对所有状态转换进行建模,这基本上是从大数字到小数字的任何转换)。
- 1 - 我已经接受了这个号码,什么都不做。
- 2 - 我已经接受了这个数字,这个数字是 1:打印我积累的东西并扔掉我。