什么样的算法用于分解数据?

时间:2011-09-26 01:46:52

标签: algorithm math graph-algorithm

我有一个包含大量数据的表,需要对每个数据进行查找并分解每个数据。这是一个简化的数字示例。我有这张桌子:

1 [1]
2 [1, 1]
4 [2, 2]

现在我想要分解4.我抬头看到2 + 2 = 4。所以然后我抬头2看看是否分解为1 + 1所以我知道2 + 1 + 1 = 4和1 + 1 + 1 + 1 = 4。对于这个问题,我应该将它(使用计算表)分解为4个结果(提到的3个和4 * 1 = 4个)。

我不确定但这是图形问题吗?还是其他一些类型?我想我可以通过使用一个破坏它的递归来解决这个问题,但我想知道是否有一种普遍接受的方式,这个过程将处理大量数据,所以我需要以一种方式设计它故障可以分布在多个CPU上。

知道这是什么类型的问题或解决它的逻辑?

2 个答案:

答案 0 :(得分:2)

尽管我能理解您的具体示例,但它可能是递归,可能是图形问题,也可能是其他几种情况,或者是组合。并非每个编程问题都可以归类为一个整齐的类别,并且通常至少有六种不同的有效方法可以解决任何问题。

在具体处理大量数据方面,可能会采用许多不同的策略,具体取决于它是如何被访问的(按顺序随机地随机偏移?按键或某种搜索方式随机? ),它的更新频率,与存储层次结构的各个级别的大小相关的数据量等等。

然后有多个CPU - 并行处理 - 除了其他问题之外,数据同步成为一个重要问题。

答案 1 :(得分:1)

你的例子实在太模糊了 - 你不是要把它作为一个真实的场景或问题来解决,而是作为一种算法 -

  

我抬头看到2 + 2 = 4。所以然后我抬头2看看是否分解为1 + 1所以我知道2 + 1 + 1 = 4和1 + 1 + 1 + 1 = 4。对于这个问题,我应该将它(使用计算表)分解为4个结果(提到的3个和4 * 1 = 4个)。

你不是在问怎么做 - 你告诉我们你想做什么,并询问那个活动的名称。

从您的问题中可以清楚地知道您需要做什么。你的过程应该是

  • 编写程序以执行任何需要执行的操作
  • 如果您遇到某个特定点,那么请研究或询问特定的问题
  • 如果它不起作用或需要改进,请询问与问题区域相关的特定问题