我是一名 Java 程序员,已经达到了蛮力计算机能力的极限。我的关系数据库(和非关系数据库)产生结果的速度不够快,而且我遇到了软件瓶颈,所以我转向数学可能会改进我的算法来解决我的问题。我有数据,很多数据!我正在收集 30 天的天气数据,每天包含超过 100,000 个变量。变量可以在其他日子或不重复出现。总共有 120 亿个不同的变量可以发生。因此,在这 120 亿次中,每天只有 100,000 次发生,但这些也可能在其他任何一天再次发生,也可能不发生。我试图查看是否说 varA 发生 varH 在 30 天内发生了 20 次,或者当 varB 发生时 varZ 在这 30 天内发生了 12 次。
前主计数
varA-varA : count
varA-varB : count
varA-varC : count
.
.
.
varZ-VarX : count
varZ-VarY : count
varZ-VarZ : count
我一直在想不同的方法来解决这个问题。我想到的一种方法是将每一天分成一组,然后以某种方式提取它们之间的相似之处。有没有一种方法可以快速计算集合中的组合?
抱歉,我在不正确的上下文中使用了“变量”这个词,天气事件可能更准确。这些事件没有任何关联的值,它们是描述性的。例如,事件可以是“HotWeatherAtLong22Lat48”或“LowPressureAtLong65Lat78”。我有 120 亿个事件,而这些事件中只有 10^5 个可以在一天内完成。其中一些事件可能在 30 天期间根本不会发生,有些可能会在所有 30 天内发生,有些可能只在某些天发生,这似乎很随机,但我想找到次数一对事件在 30 天内同时发生——