我知道模数给出了余数,而这段代码将给出约瑟夫斯问题的幸存者。我注意到一种模式,当 n mod k = 0 时,起始计数点开始于圆圈的最开头,当 n mod k = 1 时,紧挨着圆圈开头的人在整个圆圈的执行过程中幸存下来.
我只是不明白这个递归如何使用模数来找到最后一个站立的人以及 josephus(n-1,k) 实际上指的是什么。它是指最后一个被处决的人还是特定回合中最后一个幸存者?
def josephus( n, k):
if n ==1:
return 1
else:
return ((josephus(n-1,k)+k-1) % n)+1
Run Code Online (Sandbox Code Playgroud) 我正在尝试对我预先知道的一组整数进行模数运算的优化 分频器是 400-3500,而红利是高达 2^16 的正整数
我听说过黑客很高兴的魔术数字,但我找不到一种方法来获得一般数字模数的魔术数字。
如果不是通过幻数,我可以根据我对数字的信息进行优化吗?
我在 ARM7 上做模数时遇到很多麻烦。
目前,我有这个代码:
ADD R0,R0,R1
MOV R0, R0 MOD 2
BX LR
Run Code Online (Sandbox Code Playgroud)
但这根本不起作用。
从我的同学所做的来看,我们应该通过位移来完成,但我不明白这是如何工作的。
import java.util.*;
public class AddingIntegers{
public static void main(String []args){
ArrayList <Integer> list = new ArrayList<>(Arrays.asList(10,20,30));
add(list);
}
public static void add(ArrayList<Integer> list) {
for (int i = list.size() - 1; i >= 0; i--) {
if (i % 2 == 0) {
list.add(list.get(i));
} else {
list.add(0, list.get(i));
}
}
System.out.println(list);
}
}
Run Code Online (Sandbox Code Playgroud)
预期输出:[20,10,20,30,30,10]
实际输出:[20、10、20、30、30、20]
因此,我不明白为什么对于最后一个索引,当i = 0时,在列表末尾添加20,就我而言应该是10。
我有以下问题:
> 1e20 %% 3
[1] 0
Warning message:
probable complete loss of accuracy in modulus
Run Code Online (Sandbox Code Playgroud)
结果不可能是正确的,我确定这是因为1e20它真的很大。但我想在R. 有机会提出这个吗?
编辑:我想做以下挑战:https : //www.codeabbey.com/index/task_view/modular-calculator
这是我的代码:
library(tidyverse)
library(magrittr)
get_result <- function(.string){
terms <- .string %>%
str_split("\n") %>%
unlist %>%
str_replace("%", "%%") %>%
str_squish
terms[1] %<>%
str_c("x <<- ", .)
terms[2:length(terms)] %<>%
str_c("x <<- x ", .)
map(terms, ~ {
eval(parse(text = .x))
})
x
}
get_result("6
+ 12
* 99
+ 5224
* 53
* 2608
* 4920
+ …Run Code Online (Sandbox Code Playgroud) 我有一个包含 50 个项目的数组。
我想将每 3 个项目包装到一个<div>.
我正在努力实现这一目标,但我无法让它发挥作用
var cards = [];
for(var i=0; i < 50; i++){
cards.push('<div class="card-item">Test</div>');
}
for(var i = 0; i < cards.length; i++){
if(i % 3 === 0){
let slides = populateSlide(cards[i]);
console.log(slides);
}
}
populateSlide = (cards) => {
return `<div class="carousel-item item">${cards}</div>`;
}
Run Code Online (Sandbox Code Playgroud)
使用上面的代码,我只能在 3 的每个乘法中获得一个项目。因此我div只有一个项目而不是三个。
提前致谢。
我正在尝试使用:
float divAm = (float)theAngle%(float)rads;
Run Code Online (Sandbox Code Playgroud)
但它说二进制%的操作数无效
theAngle和rads都是float类型.
有什么建议吗?
谢谢
23 % -5 = -2
23 % 5 = 3
Run Code Online (Sandbox Code Playgroud)
有人可以向我解释我是如何理解这一点的,因为明天我会参加考试.我想说,因为-5 * -5 =25那时25 -2 = 23他们是怎么得到的23.它是否正确?
这是一些示例代码
int test = 1234;
int modValue, andValue;
modValue = test % -8;
andValue = test & 7;
printf("Mod Value = %d And Value = %d\n", modValue, andValue);
int counter = 0;
for(counter = 0; counter < 10000; counter++) {
modValue = counter % -8;
andValue = counter & 7;
if(modValue != andValue) {
printf("diff found at %d\n", counter);
}
}
Run Code Online (Sandbox Code Playgroud)
Ideone链接:http://ideone.com/g79yQm
负数给出了不同的结果,这是关于它的,但除此之外,它们总是对所有正值都起到完全相同的作用吗?
即使对于负数,它们似乎也只是总是偏离1循环.
那些想知道它类似于这个问题的人为什么模运算符是必要的?问题,但我不减1.
这使用的负值高于模数值,是的只适用于正值.
我从IDA-PRO中发现这个Hex-Ray的反编译器似乎有时会生成一个模数%,有时会生成AND &两个相同源代码的运算符.我想这是来自优化器.
由于我反编译的这个项目甚至不应该使用负值我想知道什么是原始源代码怀疑任何人使用带负值的模数虽然看起来很奇怪.
同样使用And模数命令我怎么知道循环操作总是使用模数,在这种情况下,人必须使用a, …
我已经创建了一个列表和该列表的迭代循环。我正在尝试使用模数运算符计算所有偶数。我已经初始化了count变量,并使用了count增量和if语句来捕获嵌套循环中的所有偶数。但是,我得到的只是第一名。count等于1,这是因为使用模数不正确,而item = 10,是否是由于迭代循环到达了列表的末尾吗?
我不知道要更改什么,代码结构对我来说都不错。我尝试缩进打印功能。这告诉我模量捕获了偶数,但计数未将它们求和。
list = [1,2,3,4,5,6,7,8,9,10]
for item in list:
count = 0
if (item % 2 == 0):
count = count + 1
print(count)
print(item)
print(list)
Run Code Online (Sandbox Code Playgroud)
我希望数字5是程序的结果,因为列表中有5个偶数
modulus ×10
c ×2
python ×2
algorithm ×1
and-operator ×1
arm7 ×1
arraylist ×1
arrays ×1
assembly ×1
count ×1
ida ×1
java ×1
javascript ×1
josephus ×1
largenumber ×1
objective-c ×1
optimization ×1
r ×1
recursion ×1
signed ×1