gpt4 book ai didi

arrays - 如何有效地搜索结构化数字数组

转载 作者:行者123 更新时间:2023-12-02 04:53:49 25 4
gpt4 key购买 nike

我有一个 GB 大小的虚拟数组,大小为 m x n,较高的值位于右侧和顶部。通过虚拟我的意思是返回值是从另一个程序根据给定的坐标提供的,但是程序员不知道给定运行的功能。保证给定的数字在数组中。

{现在证明这个数是两个素数的乘积,所以NP难}

我看了Efficient search of sorted numerical values但它没有我需要反射(reflect)的多行结构。我尝试了一种“螺旋”方法,但有时需要很长时间才能遍历。 (查看超过一半的可能插槽)通常行有规则的间隙,但每一行都会不同。列往往具有(不同的)算术级数。行已排序。一行中最左边的值小于下一个更高行中最左边的值,一行中最右边的值小于下一个更高行中最右边的值。请参阅下面的示例数据。我尝试过的是首先消除不能保持目标值的行,然后选择剩余的“中间”值行。对该行进行二进制搜索,然后根据下一行是否可能(猜测)在范围内具有更多值向上或向下移动。目标值可能会随机放置在可用的可能槽中。这是一些示例数据

1008 1064 1120 1176 1232

999 1053 1107 1161 1215

988 1040 1092 1144 1196

975 1025 1075 1125 1175

960 1008 1056 1104 1152

有什么想法吗?

最佳答案

如果目标数字只是两个数字(质数)的乘积,这相当于因式分解,事实证明是这种情况{发布时尚不清楚}。已知因式分解是 NP 难的。这里有一个关于因式分解和决策理论的有趣旁白 https://cstheory.stackexchange.com/questions/25466/factoring-as-a-decision-problem和这里 http://rjlipton.wordpress.com/2011/01/23/is-factoring-really-in-bqp-really/

关于arrays - 如何有效地搜索结构化数字数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25140464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com