- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
(您可以跳过此部分并转到下一部分以了解实际问题。这只是为那些真正想知道“您到底为什么要问这个?”的人提供的背景信息)
想象一个物体从无摩擦的山坡上滑下。有加速度为 0 的平坦区域。其余路径的加速度大于 0,最高可达 9.81 m/s^2。如果你知道山的形状,你可以绘制最大加速度作为下山位置的函数。假设您将同一座山放在另一个星球或月球上以获得不同的加速度与位置曲线。为什么?目标是选择正确的加速度,以便您在 10 秒内到达山脚。你的位置变化是固定的。您的初始速度为 0,您的最终速度无关紧要,只要您在 10 秒内下山即可。假设您永远不会失去与山表面的联系。
这意味着您可以插入加速度值(改变行星)并在下坡行驶 10 秒后获取位置。当我绘制这种关系时,我得到一个单调递增的图(x 轴上更高的加速度导致 y 轴上更高的 10 秒位置变化值)。但是,我的山非常复杂。我不能假设这种关系是立方的或平方的。但它是单调递增的。
这是一些示例数据,其中包含我的算法绘制的图表:
acc = [
1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000
5.0000 5.5000 6.0000 6.5000 7.0000 7.5000 8.0000
8.5000 9.0000 9.5000 10.0000 10.5000 11.0000 11.5000
12.0000 12.5000 13.0000 13.5000 14.0000 14.5000 15.0000
15.5000 16.0000 16.5000 17.0000 17.5000 18.0000 18.5000
]
pos = [
5.9176 6.5810 6.9784 7.2429 7.4314 7.5725 7.6818
7.7691 7.8402 7.8992 7.9489 7.9913 8.0279 8.0597
8.0877 8.1123 8.1342 8.1538 8.1714 8.1872 8.2016
8.2146 8.2265 8.2374 8.2472 8.2550 8.2617 8.2676
8.2676 8.2676 8.2676 8.2676 8.2676 8.2676 8.2676
]
显然我使用的是 Matlab,但这是独立于语言的。请注意,我的数据来 self 当前的算法,与我上面描述的问题略有不同。
给定具有非线性和非线性化趋势的单调递增或递减函数,是否有类似于插值搜索 (loglogn) 的搜索算法,或者至少优于二进制/黄金截面搜索 (logn) 将找到正确的输入以实现所需的输出?
我的直觉是应该有比 logn 更好的东西可用,因为它是单调的和趋势的。我知道趋势不是一个很好用的词,但我认为它传达了我想表达的意思。
注意事项:
更新
如果没有线性化,我无法在这个特定趋势上实现比 logn 更好的性能。虽然通过反转加速度值可以将数据线性化,但@Gassa 建议的 Newton-Raphson 类型方法并不成功,因为函数的导数计算成本高/不可能。
不幸的是,这并没有回答它是否不可能的问题。对于 f 和 f' 的计算时间昂贵的单调趋势,可能会找到一个 loglogn 搜索算法。这个问题需要数学证明。也许是时候把这个问题带到数学堆栈交换站点了。
虽然这里还有一个更深层次的问题需要回答,但我相信@Penguino 的回答的贡献使我找到了一种线性化数据的方法,以便我可以使用插值搜索。因此,他的答案已被标记为正确。
最佳答案
因此,如果我理解,您有一个函数 A(x),它在两个限制 x0 和 x1 之间单调递增,并且对于这些限制之间的所有 x 也大于零。并且您的对象在 x0 和 x1 之间经历加速度 k.A(x),其中 k 是与局部重力相关的比例因子。 And you want your object to start at velocity v0=0, at time t0=0, at position x0, and end up at position x1 at time t1 = 10 by appropriate choice of the scaling factor k.
如果是这种情况,那么我相信旅行时间与 1/sqrt(k) 成正比。因此,您需要做的就是针对某个任意 k 非常准确地一次准确计算旅行时间,然后适本地缩放。例如,如果k=1的行程时间为T1,那么k=(T1)^2/100的行程时间为10秒。
所以所需的时间是对旅行时间进行一次准确计算所需的 O(?)(大概一些分段数值积分可以做到这一点)。
关于algorithm - 是否有可能在这种单调的非线性趋势上实现比 logn 搜索更好的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38596928/
我在我的应用程序中使用 Hibernate Search。其中一个子集合被映射为 IndexedEmbedded。子对象有两个字段,一个是 id,另一个是日期(使用日期分辨率到毫秒)。当我搜索 id=
The App Engine Search API有一个 GeoPoint 字段。可以用它来进行半径搜索吗?例如,给定一个 GeoPoint,查找位于特定半径内的所有文档。 截至目前,它看起来像 Ge
客户对我正在做的员工管理项目提出了这个新要求,以允许他们的用户进行自定义 bool 搜索。 基本上允许他们使用:AND、OR、NOT、括号和引号。 实现它的最佳方法是什么?我检查了 mysql,它们使
很想知道哪个更快 - 如果我有一个包含 25000 个键值对的数组和一个包含相同信息的 MySQL 数据库,搜索哪个会更快? 非常感谢大家! 最佳答案 回答这个问题的最好方法是执行基准测试。 关于ph
我喜欢 smartcase,也喜欢 * 和 # 搜索命令。但我更希望 * 和 # 搜索命令区分大小写,而/和 ?搜索命令遵循 smartcase 启发式。 是否有隐藏在某个地方我还没有找到的设置?我宁
我有以下 Marklogic 查询,当在查询控制台中运行时,它允许我检索具有管理员权限的系统用户: xquery version "1.0-ml"; import schema namespace b
我希望当您搜索例如“A”时,所有以“A”开头的全名都会出现。因此,如果名为“Andreas blabla”的用户将显示 我现在有这个: $query = "SELECT full_name, id,
我想在我的网站上添加对人名的搜索。好友列表已经显示在页面上。 我喜欢 Facebook 这样做的方式,您开始输入姓名,Facebook 只会显示与查询匹配的好友。 http://cl.ly/2t2V0
您好,我在我的网站上进行搜索时遇到此错误。 Fatal error: Uncaught Error: Call to undefined function mysql_connect() in /ho
声明( 叠甲 ):鄙人水平有限,本文为作者的学习总结,仅供参考。 1. 搜索介绍 搜索算法包括深度优先搜索(DFS)和广度优先搜索(BFS)这两种,从起点开始,逐渐扩大
我正在为用户列表使用 FuturBuilder。我通过 futur: fetchpost() 通过 API 获取用户。在专栏的开头,我实现了一个搜索栏。那么我该如何实现我的搜索栏正在搜索呢? Cont
我正在使用 MVC5,我想搜索结果并停留在同一页面,这是我在 Controller (LiaisonsProjetsPPController) 中执行搜索操作的方法: public ActionRes
Azure 搜索中的两种方法 Upload 与 MergeOrUpload 之间有什么区别。 他们都做完全相同的事情。即,如果文档不存在,它们都会上传文档;如果文档已经存在,则替换该文档。 由于这两种
实际上,声音匹配/搜索的当前状态是什么?我目前正在远程参与规划一个 Web 应用程序,该应用程序将包含和公开记录的短音频剪辑(最多 3-5 秒,人名)的数据库。已经提出了一个问题,是否可以实现基于用户
在商业应用程序中,具有数百个面并不罕见。当然,并非所有产品都带有所有这些标记。 但是在搜索时,我需要添加一个方面查询字符串参数,其中列出了我想要返回的所有方面。由于我事先不知道相关列表,因此我必须在查
当我使用nvcc 5.0编译.cu文件时,编译器会为我提供以下信息。 /usr/bin/ld: skipping incompatible /usr/local/cuda-5.0/lib/libcud
我正在使用基于丰富的 Lucene 查询解析器语法的 Azure 搜索。我将“~1”定义为距离符号的附加参数)。但我面临的问题是,即使存在完全匹配,实体也没有排序。 (例如,“blue~1”将返回“b
我目前有 3 个类,一个包含 GUI 的主类,我在其中调用此方法,一个包含数据的客户类,以及一个从客户类收集数据并将其放入数组列表的 customerList 类,以及还包含搜索数组列表方法。 我正在
假设我有多个 6 字符的字母数字字符串。 abc123、abc231、abc456、cba123、bac231 和 bac123 。 基本上我想要一个可以搜索和列出所有 abc 实例的选择语句。 我只
我有这个表 "Table"内容: +--------+ | Serial | +--------+ | d100m | <- expected result | D100M | <- expect
我是一名优秀的程序员,十分优秀!