如何使用 Python 在文件中找到连续数字的路径?



>我有一个包含 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:打印我积累的东西并扔掉我。