- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在编写计算约瑟夫斯数的代码。我只是在试验这些数字以使代码正确。这是我写的代码:
int answer(int n, int k) {
if (n == 0) {
return 0;
} else {
return (answer(n - 1, k) + k + 1) % n + 1;
}
}
这是正确的(我总是保持k = 0
),但现在我不知道为什么。
我尝试手动追踪它,但没有得到相同的答案。
我认为它是这样工作的:
answer(2,0)
=> ((answer(1,0))+1)%3
=> ((((answer( 0,0))+1)%2)+1)%3
=> ((1%2)+1)%3
=> (1+1) %3
=> 2
。
然而,答案是1
。
有人可以解释一下吗?
最佳答案
answer(2,0)
=> 返回 ((answer(1,0))+1)%2 + 1
answer(1,0)
=> 返回 ((answer(0,0))+1)%1+ 1
answer(0,0)
=> 返回 0
answer(1,0)
=> 返回 (0+1)%1+ 1 即 1
answer(2,0)
=> 返回 (1+1)%2 + 1 即 1
关于c - 这个用于查找 Josephus 数的 C 代码如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41924385/
我已经尝试了一段时间,但我不知道如何让下面的程序以 N 作为输入并生成 M ,以便最后死去的士兵是第 13 个(N>13); int main() { int N, M; struct nod
josephus problem可以是solved通过以下递归: josephus(n, k) = (josephus(n - 1, k) + k-1) % n + 1 josephus(1, k
我在上数据结构课,无法重现教师给出的示例数据。该问题是经典的 Josephus 问题,其中包含用户提供的成员数量、步长间隔和起始位置。 具体来说,我被告知有 99 人,从 23 人开始,数到 5 应该
约瑟夫斯问题(或约瑟夫斯排列)是与某种数数游戏相关的理论问题。 People are standing in a circle waiting to be executed. Counting beg
class Node { public int Data { get; set; } public Node Next { get; set; }
我正在尝试使用 java 中的队列来解决 Josephus 问题。输入必须是名称列表(字符串)和整数 k 或土 bean 已通过队列的次数。我需要测试 4 个不同的输入。这就是我到目前为止所拥有的,我
假设 100 人围成一圈。从第 1 人数到第 14 人,将此人移出圈子。按照数数顺序,再次数数,去掉第 14 个人。重复。最后站着的是谁? 我已经尝试了一切来解决这个问题,但它似乎无法处理死循环。
编辑:我似乎至少已经解决了错误,并更新了代码。然而,数学似乎仍然没有解决。有什么想法吗? 简而言之,我正在尝试用 C++ 编写一个程序,它会提示用户输入初始圈中的人数,然后告诉他们如果 k,他们应该站
我正在做一个基于 Josephus 问题和循环链表的作业。下面的函数在 Xcode 中给出了一个错误(Control reaches end of non-void function),我认为这意味着
我正在编写计算约瑟夫斯数的代码。我只是在试验这些数字以使代码正确。这是我写的代码: int answer(int n, int k) { if (n == 0) { retur
所以我在读Problem Solving Using Data Structures Python作者实现了一个队列来模拟著名的 Hot Pocket/Josephus 执行问题。但是,我认为这个实现
我最近偶然发现一个论坛声称可以使用数据结构在 O(n) 中解决 Josephus 问题。这里明确的选择是循环链表,但我声称它只能在 O(kn) 或 O(n^2) 中完成,除非你使用维基百科的数学递归/
上周我参加了 Facebook 黑客杯的第 1b 轮比赛。 问题之一基本上是 Josephus problem 我之前把约瑟夫斯问题当成离散数学问题研究过,所以我基本上明白了如何得到递归: f(n,k
在进行代码大战训练时,我遇到了关于约瑟夫排列的挑战,我尝试先在纸上解决它,然后再将其转化为代码。 问题如下:“创建一个返回 Josephus 排列的函数,将要排列的项目的初始数组/列表作为参数,就像它
我想知道是否有可能在 python 中使用列表来解决 Josepheus 问题。 简而言之,Josephus 问题就是在圆形排列中找到一个位置,如果使用事先已知的跳过参数处理执行,该位置将是安全的。
有没有办法在 O(n.logn) 中打印出 Josephus 问题中的移除顺序? 示例 人数为 n = 7,跳过人数为 k = 3。淘汰顺序为: 3, 6, 2, 7, 5, 1, 4 最佳答案 有一
我是一名优秀的程序员,十分优秀!