- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
前一段时间在一次编程比赛中我遇到了一个令人费解的问题,此后一直困扰着我。虽然我没有逐字记住,但我会尽力重现:
Jack starts at 0 on the number line and jumps one unit in either direction. Each successive jump he makes is longer than the previous by 1 unit, and can be made in either direction. Write a program that takes a number and returns the minimum number of jumps Jack makes to reach that number.
如果这不是一个好问题,或者标题被认为具有误导性,我提前道歉。
最佳答案
我想详细说明@supercat 的正确和快速解决方案,并描述一种算法,除了计算这样一个和的长度之外,还计算一个最小长度和。
找到满足 t_k := 1 + 2 + 3 + ... + k >= |n| 的最小整数 k t_k 与 |n| 具有相同的奇偶性。然后系统地将t_k的被加数的符号翻转为总n。
这里是详细信息。注意 t_k = k(k + 1)/2,一个三角数。设置 t_k = |n|求解 k 给出 (-1 + sqrt(1 + 8|n|))/2 的上限。所以 k 等于上限或 1 或 2 加上它,这三个数字中的任何一个与 n 具有相同的奇偶校验并且是最小的。这里我们使用了这样一个事实,即三个连续三角形数的集合 {t, t + s, t + s + (s + 1)} 包含任何正整数 t, s 的偶数和奇数。(只需检查 t 和 s 的所有四种奇偶校验可能性。)
要找到 n 的最小长度和,首先计算 d := (t_k - n)/2。因为 t_k >= |n| t_k 和 n 具有相同的奇偶性,d 位于集合 {0, 1, 2, ..., t_k} 中。现在重复减去:d = a_k(k) + r_k, r_k = a_{k-1} (k-1) + r_{k-1}, ..., r_2 = a_1 (1) + r_1,选择每个a_i在 {0, 1} 中最大化。根据下面的引理,r_1 = 0。所以 d = sum_{i=1}^k a_i i。因此 n = t_k - 2d = sum_{i=1}^k i - sum_{i=1}^k 2a_i i = sum_{i=1}^k (1 - 2a_i) i 和 1 - 2a_i 位于 {-1 , 1}。所以序列 b_i := 1 - 2a_i 是一条路径,并且根据 k 的最小值,b_i 是一条最小路径。
考虑目标数 n=12。根据算法 3,k 的可能性为 5、6 或 7。t_k 的对应值为 15、21 和 28。由于 28 是其中与 n 具有相同奇偶性的最小值,因此我们看到 k=7 .所以d = (t_k - n)/2 = 8,我们按照算法记为1 + 7。因此,到 12 的最短路径是 -1 + 2 + 3 + 4 + 5 + 6 - 7。
我说 最短路径,因为最短路径通常不是唯一的。例如,1 + 2 -3 + 4 - 5 + 6 + 7 也可以。
引理:令 A_k = {0, 1, 2, ..., t_k}。那么一个数在A_k中当且仅当它可以表示为{0, 1}中某个序列a_i的和sum_{i=1}^k a_i i。
证明:通过对 k 的归纳。首先,0 = sum_{i=1}^0 1,空和。现在假设结果对所有 k - 1 >= 0 都成立,并假设数字 d 位于 A_k 中。反复相减:d = a_k(k) + r_k, r_k = a_{k-1} (k-1) + r_{k-1}, ..., 在{0, 1中选择每个a_i = 0或1最大} 并在第一个 r_j 位于 A_j 中且对于某些 j < k 时停止。然后通过归纳假设,r_j = sum_{i=0}^j b_i i 对于 {0, 1} 中的一些 b_i。然后根据需要 d = r_j + sum_{i=j+1}^k a_ki i。相反,a_i 在 {0,1} 中的和 s := sum_{i=1}^k a_i i 满足 0 <= s <= sum_{i}^k i = t_k,因此 s 位于 A_k 中。
假设算术运算是常数时间,从 n 计算 k 需要 O(1) 时间,因此计算到 n 的最小路径的长度。然后它需要 O(k) 时间来找到 d 的最小长度和,然后 O(k) 时间使用该和来产生 n 的最小长度和。所以 O(k) = O(sqrt(n)) 时间全部结束。
关于algorithm - 决定 'Jumping Jack' 的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15406950/
在 risc-v 规范中,它说 j 是 jal 的伪代码。我对它的工作原理感到困惑,因为 j (25 位立即数)和 jal (20 位立即数)的立即值范围不同 - 还有 jalr 带 12 位立即数。
希望这是我提出问题的正确位置。为什么不能使用这两个指令递归调用子例程? 提前致谢! 最佳答案 如果您“跳转并链接”,返回地址将存储在寄存器中。如果再次“跳转链接”,返回地址就会被新的地址覆盖,破坏原来
我正在尝试在运行服务器端口的数据库和另一台服务器之间创建一个 SSH 隧道,如下所示。 MySQL:3306 Server-A:3306 我想使用 Server-A:3306作为连接到数据库的数据库
我喜欢包含键:值的“跳转字典”的概念,其中值是函数。不过,我不确定我是否应该喜欢这个概念。 我想替换一长串 if if-else if 语句。 (我应该使用 switch 语句吗?) 有没有不用eva
我是 js 的新手我正在尝试通过 Prop isActive .但我收到一个错误。你们能告诉我为什么我会收到下面的错误代码吗?我在这一行收到了错误 import React from 'react'
我一直在创建自己的 UIControl 子类以用于我的调整 iDunnoU .我已经完成了 UIControl,但展开/折叠动画除外。这个动画的问题是它在展开/折叠时会向下/向上“跳跃”,而不是像我原
我正在尝试让相机在我的 LWJGL 程序中跳跃。我尝试编写一个 if/else 语句,它会说:“当你到达这个位置时,转到默认的起始位置。”到目前为止,它还在继续飞翔。这是我的代码: if (flyUp
在过去的一个半星期里,我一直在使用 Java 和 Swing 从头开始编写游戏。到目前为止,游戏运行一切顺利,除了一件事:跳跃。我正在尝试实现抛物线跳跃,以便玩家不只是向上传送一点点。相反,我希望
我如何处理 JuMP 中的稀疏矩阵? 例如,假设我想施加以下形式的约束: A * x == 0 哪里A是一个稀疏矩阵和 x变量向量。我假设 A 的稀疏性可以被利用来使优化更快。如何在 JuMP 中利用
我有一个文本字段,您通常在其中输入数字。但是,用户必须单击键盘上的数字按钮才能进入数字屏幕。有没有办法直接跳转到键盘上的屏幕并可以输入数字? 如有任何意见和建议,我们将不胜感激。 提前致谢。 最佳答案
粘性导航栏“跳跃” 我最近制作了一个导航栏,它在滚动时粘在屏幕顶部(进入网页时它从中间开始)。我是在 Mac 上做的,一切正常。但是,当在我的 Windows 桌面上进入网页时,整个导航栏要么跳动,跳
我有一个功能类似于 w3schools 的侧边栏,而 w3schools 的侧边栏显示相同的问题。侧边栏“跳跃”并在该区域留下难看的空间,当向下滚动页面和移动 chrome 的导航栏隐藏时,它在顶部留
我正在尝试创建一组在悬停时展开和收缩的 Font-Awesome 社交媒体图标。但是,当我停止将鼠标悬停在每个图标上时会出现问题,图标中间的图像会“跳跃”而不是像图标的其余部分那样平滑地折叠。这是代码
我的垂直自动滚动似乎在某些点不规律地停止,我想要一个平滑的滚动。其次,我希望垂直滚动自动重置(几乎无限循环或暗示它永无止境而不仅仅是跳跃)。我将如何着手完成这个?到目前为止,这是我的代码:http:/
我在 YouTube 上发布了一个视频,您可以在其中看到该问题。我放慢了视频速度,这样你就能真正看到跳跃。 链接:https://www.youtube.com/watch?v=17Wftj2-MRM
我在 Drupal 8 中构建了一个站点(但我认为这是一个 CSS 问题)。 当您重新加载页面时,页面“跳转”。它也会在您第一次访问时执行此操作,但如果您按“f5”,您会看得更清楚。我尝试删除 Log
如您所见,此背景将向下动画。我拥有我想要的一切正常工作,除了在动画完成后,它会跳转,这是我不想要的。我只希望它无休止地滚动而无需跳转到它。下面的 CodePen。 关于如何在大约 10 秒后继续滚动而
更新:这基本上是我想要的,但 div 固定在底部 - http://www.wduffy.co.uk/blog/wp-content/demos/jquery-scrolling-element/ 有
我正在 Python 3.4 中使用 numpy 和矩阵构建一个神经网络草图,以学习简单的 XOR。我的符号如下: a 是神经元的事件 z 是一个神经元的输入 W 是一个权重矩阵,大小为 R^{#上一
请原谅标题措辞不佳,希望我能在这里解释这个问题。 我用 jQuery 编写了一个简单的画廊控件,其中有六个图像和两个按钮控件,允许用户循环浏览整个图像集合。我的这部分工作正常,但是每当我单击一个按钮在
我是一名优秀的程序员,十分优秀!