Questions tagged «bitwise»

对于涉及在位级别上做某事的挑战。

2
有理数的按位XOR
介绍 0和1之间的每个有理数都可以表示为最终的周期性位序列。例如,11/40的二进制表示为 0.010 0011 0011 0011 ... 0011无限期重复的部分。以下是找到此表示形式的一种方法。从r = 11/40开始,然后重复将其加倍并取小数部分,当它超过1时进行记录。当r的值重复时,您就知道已经进入循环。 1. r = 11/40 2. 2*r = 11/20 < 1 -> next bit is 0, r = 11/20 3. 2*r = 11/10 >= 1 -> next bit is 1, r = 2*r - 1 = 1/10 4. 2*r = 1/5 …

21
产生一个XOR表
介绍 XOR是实现异或的数字逻辑门。大多数情况下,显示为^。二进制可能出现的四种结果: 0 ^ 0 = 0 0 ^ 1 = 1 1 ^ 0 = 1 1 ^ 1 = 0 这也可以看作二进制的加模2。在十进制中,我们需要将十进制转换为二进制,35 = 100011然后25 = 11001。为了计算XOR值,我们将它们彼此叠加: 100011 11001 ^ -------- 111010 = 58 in decimal 任务:给定大于1的整数N时,输出大小为N + 1的XOR表。例如,N = 5: 0 1 2 3 4 5 1 0 3 …

30
在64位整数中找到前导零的数目
问题: 在64位有符号整数中找到前导零的数目 规则: 输入不能视为字符串;数学和按位运算可以驱动算法的任何事物 无论使用哪种语言,都应针对数字的64位带符号整数表示形式验证输出 高尔夫球场默认规则适用 以字节为单位的最短代码获胜 测试用例: 这些测试假定二进制补码有符号整数。如果您的语言/解决方案缺少或使用带符号整数的其他表示形式,请注明出来并提供其他可能相关的测试用例。我已经提供了一些解决双精度问题的测试用例,但是请随时建议其他应该列出的用例。 input output 64-bit binary representation of input (2's complement) -1 0 1111111111111111111111111111111111111111111111111111111111111111 -9223372036854775808 0 1000000000000000000000000000000000000000000000000000000000000000 9223372036854775807 1 0111111111111111111111111111111111111111111111111111111111111111 4611686018427387903 2 0011111111111111111111111111111111111111111111111111111111111111 1224979098644774911 3 0001000011111111111111111111111111111111111111111111111111111111 9007199254740992 10 0000000000100000000000000000000000000000000000000000000000000000 4503599627370496 11 0000000000010000000000000000000000000000000000000000000000000000 4503599627370495 12 0000000000001111111111111111111111111111111111111111111111111111 2147483648 32 0000000000000000000000000000000010000000000000000000000000000000 2147483647 33 0000000000000000000000000000000001111111111111111111111111111111 2 62 …

9
明智的数字
明智是我前一段时间设计的一种简单的按位语言。它基于Python的按位运算。它有几个操作,其中大多数与Python中的等效符号相同或非常相似。 : 复制堆栈顶部 ? 将堆栈顶部旋转到底部 ! 将堆栈底部旋转到顶部 [ ] 在栈顶不为零时循环 ~不是栈顶(-(n+1)) -否定堆栈顶部(-n) >将堆栈顶部向右移一次(n//2) <将堆栈顶部向左移一次(n*2) ^xor堆栈的前两个项目(与Python相同) |或堆栈的前两个项目(与Python相同) &和堆栈的前两个项目(与Python相同) 用Wise制作整数非常简单,您可以将设为0 ::^并以递增,~-因此您可以设为0并将其递增一堆。但是,如果我们删除-内容,将会变得更加有趣。 我们仍然可以使用剩余的运算来计算每个数字。例如这里是3 ~<<~ 蒂奥 之所以起作用,是因为~将零(一个无穷大的0位字符串)变成负的一个(一个无穷大的1位字符串),每个都在末尾<附加一个0位,完成后,我们将~其每个都变成一个0s 字符串,然后是一个2 1s。 ,或者像大多数人所说的那样3。 任务 编写一个程序,当给定一个正整数时,将输出一个Wise程序,该程序将创建一个数字n而不-在其源代码中使用数字(输出的源代码,您可以使用-在自己的源中使用)。您可能假设堆栈顶部已经有一个零。 这是代码 源代码,而不是 元代码源,因此您应力争将生成的源代码(不一定是输出)最小化。 输出示例 此列表并不详尽,它们只是可能的输出 1 -> ~<~ 2 -> ~<~< 3 -> ~<<~ 4 -> ~<~<< 5 -> ~<~:<<| 6 -> …

15
g o l f a t 2
有时将笛卡尔坐标转换(x,y)为极坐标确实很费力(r,phi)。虽然你可以计算r = sqrt(x^2+y^2)很容易,你经常计算时的角度需要的情况下有些区别phi,因为arcsin,arccos以及arctan和所有其他三角函数有一个共同域,每个只有跨越半个圆。 在许多语言中,都有用于将直角坐标转换为极坐标的内置atan2函数,或者至少具有给定的(x,y)计算角度的函数phi。 任务 你的任务是写一个程序/功能采用两个(浮点,但不能同时为零)笛卡尔坐标(x,y),并输出对应的极角phi,其中phi必须处于度,弧度或等级(与等级余平均gradians其是1 /整圆的400),以您较方便的为准。 角度是在正方向上测量的,对于,我们有零角度(1,0)。 细节 您不得使用内置插件是计算角度phi给出两个坐标,其中包括atan2,rect2polar,argOfComplexNumber和类似的功能。但是,您可以使用通常的三角函数及其反函数,它们只需一个参数。任何单位符号都是可选的。 半径r必须为非负数,并且phi必须在范围内[-360°, 360°](无论输出270°还是,都无关紧要-90°)。 例子 Input Output (1,1) 45° (0,3) 90° (-1,1) 135° (-5,0) 180° (-2,-2) 225° (0,-1.5) 270° (4,-5) 308.66°
18 code-golf  math  geometry  trigonometry  code-golf  number-theory  fibonacci  code-golf  math  sequence  fibonacci  code-golf  string  code-golf  math  graphical-output  geometry  code-golf  string  code-golf  math  geometry  code-golf  math  bitwise  number  popularity-contest  graphical-output  image-processing  fractal  code-golf  number-theory  code-golf  date  multi-threading  code-golf  math  code-golf  math  number  sequence  code-golf  math  number  sequence  arithmetic  code-golf  decision-problem  logic-gates  code-golf  decision-problem  balanced-string  code-golf  math  arithmetic  combinatorics  code-golf  expression-building  code-golf  physics  code-golf  abstract-algebra  code-golf  number  arithmetic  integer  code-golf  ascii-art  number  code-golf  number-theory  primes  code-golf  arithmetic  grid  code-golf  code-golf  sequence  code-golf  kolmogorov-complexity  compression  code-golf  math  number  arithmetic  array-manipulation  code-golf  primes  hexagonal-grid  complex-numbers  code-golf  number  counting  code-golf  math  number  arithmetic 

23
产生奇偶校验位
甲奇偶校验位,是的校验的最简单的形式之一。首先,您必须选择奇偶校验。假设我们选择了偶数。现在,我们需要一条消息来传输。假设我们的信息是“ Foo”。用二进制形式写成: 01000110 01101111 01101111 现在,我们计算其中1的s 的总数为15。由于15是一个奇数,因此我们必须在消息末尾添加一个额外的位,而现在我们将获得偶数个“ on”位。最后添加的位称为“奇偶校验位”。如果我们为校验和选择了奇数奇偶校验,则必须添加一个额外的“ 0”,以便打开位数保持为奇数。 挑战: 您必须编写一个程序或函数来确定字符串的正确奇偶校验位是多少。您的程序必须接受两个输入: 字符串,s。这是将计算校验和的消息。这将仅限于95个可打印的ASCII字符。 一个字符或单个字符串p,将e用于偶校验或o奇校验。 并产生代表正确奇偶校验位的真假值。如果是1,则为True,如果为,则为false 0。 不允许对字符串或字符中的“ on”位数进行计数的内建函数。例如,执行以下操作的函数f:f('a') == 3或被f('foo') == 16禁止。其他任何事情,例如基本转换,都是公平的游戏。 测试IO: (without the quotes) s: "0" p: 'e' output: 0 s: "Foo" p: 'e' output: 1 s: "Hello World!" p: 'o' output: 0 s: "Alex is right" p: 'e' …

13
逆排列索引
介绍 具有n个元素的列表的字典排列可以从0到n编号!-1.例如3!= 6个置换(1,2,3)将是(1,2,3),(1,3,2),(2,1,3),(2,3,1),(3,1,2),(3,2,1)。 将排列应用于列表时,其元素的排列顺序与排列中的数字相同。例如,将置换(2,3,1)应用于l = (a,b,c)yield (l[2],l[3],l[1]) = (b,c,a)。 排列的逆定义为颠倒此操作的排列,即应用排列,然后其逆(反之亦然)不会修改数组。例如,(2,3,1)is 的逆(3,1,2),因为将其应用于(b,c,a)yields (a,b,c)。 同样,应用于排列本身的排列的逆值会产生整数1… n。例如,应用(3,1,2)到(2,3,1)产率(1,2,3)。 现在,我们将函数revind(x)定义为索引为x的排列的逆排列的索引。(如果您有兴趣,这是A056019。) 由于与指数置换我只修改了最后ķ列表中的项目当且仅当 0≤ 我 < ķ!,我们可以添加任意数量的元素到列表的开始,而不会影响revind(我)。因此,列表的长度不影响结果。 挑战 您的任务是实现revind(x)。您将编写一个完整的程序或函数,以单个非负整数x作为输入/参数,并以单个非负整数输出/返回结果。 输入和输出可以是0索引或1索引,但是它们之间必须保持一致。 禁止按索引生成排列,返回排列的索引或找到逆排列的内建函数。(允许生成所有排列或下一个排列的构建体。) 适用标准代码高尔夫球规则。 例子 下面的示例是0索引的。 Input Output 0 0 1 1 2 2 3 4 4 3 5 5 6 6 13 10 42 51 100 41 1000 …
17 code-golf  combinatorics  permutations  code-golf  image-processing  brainfuck  encode  steganography  code-golf  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  ascii-art  fibonacci  code-golf  string  code-golf  sorting  popularity-contest  statistics  code-golf  ascii-art  kolmogorov-complexity  code-golf  code-golf  ascii-art  tic-tac-toe  code-golf  string  code-challenge  classification  test-battery  binary-matrix  code-golf  math  arithmetic  code-golf  ascii-art  random  code-golf  string  code-golf  number  binary  bitwise  code-golf  number  arithmetic  code-golf  math  ascii-art  code-golf  string  ascii-art  code-golf  string  ascii-art  code-golf  string  code-golf  counting  code-golf  number  binary  bitwise  decision-problem  code-golf  array-manipulation  code-golf  tips  brain-flak  code-challenge  quine  source-layout  code-generation  code-golf  linear-algebra  matrix  abstract-algebra  binary-matrix  code-golf  string  palindrome  code-golf  puzzle-solver  sudoku  code-golf  ascii-art  code-golf  graphical-output  internet  code-golf  ascii-art  kolmogorov-complexity  code-golf  math  code-golf  clock 

3
查找字符串中的模式
在这种挑战下,您的任务是找到具有给定结构的子字符串。 输入项 您的输入应为两个非空的字母数字字符串,一个模式 p和一个text t。这个想法是,的每个字符都p代表一个连续的非空子字符串,t该子字符串彼此相邻出现,并p表示它们的串联。相同的字符对应于相同的子字符串。例如,模式aa代表任何非空正方形(通过将较短的字符串与其自身连接而获得的字符串)。因此,模式aa可以匹配子字符串byebye,并且每次a匹配bye。 输出量 如果文本t包含p匹配的子字符串,则您的输出应为该子字符串,并:在与的字符相对应的字符串之间插入冒号p。例如,如果我们有t = byebyenow和p = aa,那么bye:bye它是可接受的输出。匹配子字符串可能有多个选择,但是您只能输出其中之一。 如果t不包含匹配的子字符串,则您的输出将是悲伤的表情:(。 规则和说明 的不同字符p可以对应相同的子字符串,因此p = aba可以匹配字符串AAA。请注意,这些字符必须对应于非空字符串;特别是,如果p长于t,则输出必须为:(。 您可以编写完整的程序或函数,还可以更改两个输入的顺序。最低字节数获胜,并且不允许出现标准漏洞。 测试用例 以格式给出pattern text -> output。注意,可能存在其他可接受的输出。 a Not -> N aa Not -> :( abcd Not -> :( aaa rerere -> re:re:re xx ABAAAB -> A:A MMM ABABBAABBAABBA -> ABBA:ABBA:ABBA x33x 10100110011001 -> 10:1001:1001:10 …
17 code-golf  string  code-golf  ascii-art  geometry  code-golf  ascii-art  code-golf  sequence  stack  code-challenge  number  sequence  answer-chaining  code-golf  code-challenge  math  combinatorics  binary-matrix  code-golf  number  code-golf  cryptography  bitwise  code-golf  sudoku  code-golf  brainfuck  metagolf  code-golf  probability-theory  number-theory  primes  fewest-operations  factoring  golf-cpu  code-golf  restricted-source  code-golf  graphical-output  sequence  binary  code-golf  tips  c#  code-golf  geometry  code-golf  graphical-output  fractal  code-golf  number  sequence  code-golf  number  array-manipulation  popularity-contest  game  board-game  code-golf  puzzle-solver  grid  code-golf  ascii-art  geometry  grid  tiling  code-golf  ascii-art  whitespace  balanced-string  code-golf  card-games  king-of-the-hill  javascript  code-golf  whitespace  balanced-string  code-golf  code-golf  math  abstract-algebra  code-golf  java  code-golf  interpreter  stack  code-golf  base-conversion  code-golf  tips  code-golf  ascii-art  geometry  brainfuck  metagolf  code-challenge  math  quine  code-generation  code-golf  number  kolmogorov-complexity  arithmetic  expression-building  code-golf  string  code-golf  quine  popularity-contest  code-golf  base-conversion  code-challenge  image-processing  code-golf  conversion  coding-theory 

20
分解一个数字!
您的任务是使用以下格式分解数字。 这与基本转换类似,不同之处在于digits,您列出了values,而不是在基本列表中列出,这样列表就加到了输入上。 如果给定的基为n,则列表中的每个数字都必须采用的形式k*(n**m),其中0<=k<n和m在整个列表中都是唯一的。 眼镜 任何合理的输入/输出格式。您的程序/功能需要2个输入并输出一个列表。 输出列表可以是任何顺序。 0 可以排除或包含。 0允许领导。 允许内置。 测试用例 number base converted list input1 input2 output 123456 10 [100000,20000,3000,400,50,6] or [6,50,400,3000,20000,100000] 11 2 [8,2,1] or [0,0,0,0,8,0,2,1] 727 20 [400,320,7] 101 10 [100,1] or [100,0,1] 计分 这是代码高尔夫球。以字节为单位的最短解决方案获胜。
16 code-golf  number  sequence  number-theory  base-conversion  code-golf  bitwise  hashing  code-golf  string  ascii-art  whitespace  code-golf  math  code-golf  code-golf  image-processing  counting  code-golf  math  arithmetic  checksum  code-golf  code-golf  math  arithmetic  number-theory  code-golf  array-manipulation  random  code-golf  string  code-golf  math  ascii-art  base-conversion  code-golf  graphical-output  geometry  3d  code-golf  math  linear-algebra  matrix  code-golf  math  number  sequence  code-golf  array-manipulation  code-golf  math  matrix  linear-algebra  code-golf  number  sequence  counting  code-golf  string  code-golf  string  restricted-source  quine  sorting  code-golf  string  geometry  code-golf  string  code-golf  networking  code-golf  base-conversion  code-golf  math  matrix  code-golf  arithmetic  linear-algebra  matrix  code-golf  number  arithmetic  grid  code-golf  number  source-layout  code-golf  string  bitwise  checksum  code-golf  array-manipulation  code-golf  string  probability-theory  code-golf  tips  code-golf  sequence  code-golf  string  math  sequence  calculus  code-golf  string  palindrome  bioinformatics  code-golf  math  combinatorics  counting  permutations  code-golf  parsing  logic-gates  code-golf  arithmetic  number-theory  combinatorics  code-golf  math  sequence  polynomials  integer  code-golf  string  ascii-art  chess  code-golf  string  code-golf  number  code-golf  string  ascii-art  parsing  code-golf  code-golf  number  natural-language  conversion  code-golf  arithmetic  code-golf  string  code-golf  ascii-art  decision-problem 

5
查找XOR素数
在xnor提出的挑战中,我们被要求实现XOR乘法。在这一挑战中,目标是找到第一个nXOR素数。从以下定义可以看出,XOR素数与常规素数非常相似: 质数的定义:大于1的正数,除非将1与自身相乘,否则不能通过将两个数相乘而形成。 XOR质数的定义:大于1的正数,除非通过1与自身的XOR乘积,否则不能通过两个数的XOR乘积来形成。注意,XOR质数组成oeis序列A014580。 XOR乘法定义为不带进位的二进制长乘法。您可以在xnor的Challenge中找到有关XOR乘法的更多信息。 输入: 一个整数n。 输出: 第一个nXOR素数。 以下是500以下的XOR素数: 2 3 7 11 13 19 25 31 37 41 47 55 59 61 67 73 87 91 97 103 109 115 117 131 137 143 145 157 167 171 185 191 193 203 211 213 229 239 241 247 253 …

5
不明智的位操作
我喜欢打高尔夫球dc,但有时由于dc没有按位操作而感到沮丧。 挑战 提供实现C位操作的相当于提高4层命名的功能&,|,~和^(按位AND,OR,NOT和XOR)。每个函数将使用两个操作数(~仅使用一个),这些操作数至少是32位无符号整数。每个函数将返回与操作数相同的位宽的无符号整数。 限制 您只能使用支持的操作dc。这些是: + - * / 算术加法,减法,乘法和除法 ~ 模(如果您的语言支持,则为divmod) ^ 求幂 | 模幂 v 平方根 > >= == != <= < 标准平等/不平等经营者 >> <<位移位运算符。 dc没有这些功能,但是由于它们是通过除以2的幂进行琐碎实现的,所以我将允许这些。 dc我使用(递归)宏和(不等式)操作笨拙地构建了控制结构。您可以使用您的语言具有的任何内置控制结构。 您也可以使用逻辑运算符 && || !,即使这些运算符不能直接在中使用dc。 你不能使用位运算符 &,|,~和^或平凡实现它们的任何功能。 另外,您不得使用内置的字符串转换基础运算符或函数。 还请考虑提供一个测试程序或在线编译器代码段(不包含在高尔夫球成绩中)以帮助您验证答案。

18
解码可变长度数量
甲可变长量(也被称为VLQ或uintvar)是编码最多只能使用尽可能多字节根据需要一个28位整数值的方法。MIDI文件格式中使用了此格式,以最小化某些事件数据的大小。 它的工作方式非常简单。作为字节的高位优先级序列,每个字节的最高有效位(MSB)为a 1,表示随后是另一个VLQ字节。每个字节的其余7位组成解码值。 示例(来自维基百科): [ 0x86, 0xc3, 0x17 ] => 106903 其他参考资料:Wikipedia,《Some Guy》。 挑战: 给定一个可变长度的数量,将其转换为整数值。 输入: 一到四个字节或32位值类型的列表,表示整数的有效VLQ。 输出: VLQ输入的整数值。 规则和评分: 这是代码高尔夫,因此每种语言的最短答案以字节为单位。 标准规则和默认I / O规则适用。 禁止漏洞(当然)。 请提供测试代码的链接( TIO.run等)。 强烈建议为您的答案提供清晰的解释。 处理该转换的内置函数不会被禁止,但是不使用它们会更加有趣。 测试用例: Input (VLQ) Output (int) [ 0x00 ] => 0 [ 0x07 ] => 7 [ 0x7f ] => 127 [ …

17
XOR排序数组
给定一个键和一个字符串数组,请对该数组进行混洗,以便在每个元素与该键进行XOR运算时将其排序。 对两个字符串进行异或 要通过键对字符串进行异或,请将该键对中的每个字符值通过键中的对进行异或,以使该键永远重复。例如,abcde^123如下所示: a b c d e 1 2 3 1 2 -------------------------------------------- 01100001 01100010 01100011 01100100 01100101 00110001 00110010 00110011 00110001 00110010 -------------------------------------------- 01010000 01010000 01010000 01010101 01010111 -------------------------------------------- P P P U W 排序 排序应始终按XOR字符串的顺序进行。也就是说,1 < A < a < ~(假设ASCII编码) 例 "912", ["abcde", "hello", "test", "honk"] …

30
创建一个鹦鹉程序
给定输入,输出该输入,然后不断地换行。 输入将是仅由可打印的ASCII字符(0x20-0x7E)和换行符(0x0A)组成的字符串。 如果输入长度为0,则不断输出换行符。 这是代码高尔夫球,因此每种语言中最少的字节会获胜!
15 code-golf  string  sequence  combinatorics  fastest-code  number  code-challenge  restricted-source  rosetta-stone  code-golf  arithmetic  decision-problem  integer  factorial  code-golf  arithmetic  decision-problem  integer  bitwise  code-golf  kolmogorov-complexity  code-golf  tips  vim  code-golf  quine  code-generation  code-golf  string  restricted-source  code-golf  string  random  unicode  code-golf  audio  code-golf  ascii-art  code-golf  decision-problem  code-golf  puzzle-solver  code-golf  restricted-source  code-golf  kolmogorov-complexity  permutations  hexagonal-grid  code-golf  string  math  combinatorics  fastest-code  code-golf  restricted-source  code-golf  string  code-golf  arithmetic  code-golf  math  number  code-golf  string  decision-problem  balanced-string  code-golf  binary  code-golf  string  number  code-challenge  restricted-source  code-golf  ascii-art  printable-ascii  interactive  code-golf  string  ascii-art  code-challenge  restricted-source  source-layout  code-golf  arithmetic  tips  functional-programming  golfing-language  code-golf  binary  encryption 

4
移位XORyption
编写一个程序或函数(或一组程序/函数),以给定以下规范来加密和解密数据: 加密 通过将每个字节彼此异或来对输入进行XOR哈希计算。 通过此哈希对输入的每个字节进行XOR。 将结果左移四位。 用XOR哈希的前四位填充左侧。 在XOR哈希的最后四位填充右侧。 例 给定的输入:"G0lf"(0x47306C66) 计算XOR哈希: 0x47 ^ 0x30 ^ 0x6C ^ 0x66 = 0x7D 通过哈希对每个字节进行XOR: 0x3A4D111B 预期结果(后移和垫): ()"s¤Ñ\x11½"0x73A4D111BD 规则 只要输入/输出是实际的字节,您的程序/函数就可以在您选择的高尔夫语言(字符串,字节数组等)中有意义的任何类型的输入/输出。例如,您可能不输出十六进制字符串。 加密和解密可以分为单独的程序(分数将是它们的总大小)或单个程序。单个方法可以采用参数进行加密还是解密。 预计加密输入至少为1个字节。 解密输入至少应为2个字节。 不可打印字节不需要在输出中转义。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.