Questions tagged «bitwise»

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

17
对数组进行异化
从概念上讲,这一挑战非常简单。您会得到一个非负整数列表。如果可能,找到一个非负整数,以便对由组成的列表进行排序。如果不存在这样的输出,那么输出应该是不能被误认为是有效值的任何东西,例如负数,什么都没有,错误等。aiNbi = ai XOR NNN 这是一个例子: [4, 7, 6, 1, 0, 3] 如果我们采用此列表中的每个元素XOR 5,则得到 [1, 2, 3, 4, 5, 6] 排序。(请注意,结果列表不必具有唯一的元素且不包含空格。如果这样的操作的结果[0, 1, 1, 3]仍然是有效的。)另一方面,列表 [4, 7, 1, 6, 0, 3] 没有这样的N存在。 您可以编写程序或函数,通过STDIN(或最接近的替代方案),命令行参数或函数自变量获取输入,并通过STDOUT(或最接近的替代方案),函数返回值或函数(out)参数输出结果。 输入可以是任何方便的列表或字符串格式。您可以假设小于个,并且列表包含至少一个元素。ai231 您的代码必须在几秒钟内处理任何测试用例(尤其是四个大型用例)。 适用标准代码高尔夫球规则。 测试用例 对于每个不返回的测试用例,-1都有无限数量的正确答案。这里列出的是最小的一个。通过额外设置在输入中所有整数上都相同的位(尤其是那些比列表中最大数目中的最高有效位大的位)来设置其他解决方案。 [4 7 6 1 0 3] => 5 [4 7 1 6 0 …

30
从较小的“ H”创建一个“ H”
挑战 创建一个函数或程序,当给定整数时size,该函数或程序将执行以下操作: 如果size等于1,则输出 H H HHH H H 如果size大于1,则输出 X X XXX X X X程序/功能的输出在哪里size - 1 (只要您愿意,0只要您在答案中指定,就可以使基本情况与相对应) 可以使用以下任何一种输出格式,以您更方便的方式: 所需结构的字符串,其中任意两个不同的字符分别对应于H和space 具有所需结构的二维数组,其中任意两个不同的值分别对应于H和space 字符串的数组/列表,每个字符串中有一行输出,并且与H和对应的任意两个不同的值space 只要每行上有恒定数量的前导空格,就可以使用前导空格。两个不同的输出字符可以取决于您选择的任何内容,只要它们不同即可。 指定代码返回的输出格式。 测试用例 1 H H HHH H H 2 H H H H HHH HHH H H H H H HH HH H HHHHHHHHH H HH HH …
73 code-golf  ascii-art  fractal  code-golf  code-golf  string  code-golf  string  matrix  code-golf  graph-theory  maze  binary-matrix  code-golf  kolmogorov-complexity  random  code-challenge  metagolf  test-battery  brain-flak  text-processing  code-golf  matrix  code-golf  number-theory  primes  code-golf  string  matrix  code-golf  binary  bitwise  code-golf  number  factorial  floating-point  code-golf  number  sequence  code-golf  sequence  cops-and-robbers  code-golf  sequence  cops-and-robbers  code-golf  string  code-golf  math  decision-problem  number-theory  integer  code-golf  number  decision-problem  functional-programming  code-golf  array-manipulation  matrix  code-golf  string  classification  string  code-challenge  binary  compression  decode  code-golf  string  string  code-challenge  balanced-string  encode  code-golf  number-theory  integer  base-conversion  code-golf  math  number-theory  geometry  abstract-algebra  code-golf  array-manipulation  sorting  optimization  code-golf  math  geometry  image-processing  generation  code-golf  string  cops-and-robbers  repeated-transformation  grammars  cops-and-robbers  repeated-transformation  grammars  code-challenge  restricted-source  tips  source-layout  javascript  code-challenge  kolmogorov-complexity  restricted-source  code-golf  combinatorics  counting  math  fastest-code  linear-algebra  code-golf  math  permutations  matrix  linear-algebra  code-golf  string  decision-problem  restricted-source  code-golf  number  array-manipulation  subsequence  code-golf  number  array-manipulation  matrix  code-golf  brainfuck  code-golf  color  code-golf  quine  source-layout  code-golf  subsequence  code-golf  string  ascii-art  code-golf  string  ascii-art  alphabet  code-golf  decision-problem  interpreter  hexagonal-grid  halting-problem  code-golf  string  polynomials  calculus  code-golf  math  decision-problem  matrix  complex-numbers  code-golf  random  code-golf  number  arithmetic 

29
Bitflip和求反
给定一个整数,请创建一个表达式,该表达式0使用一元求反-和按位补码~(~n= -n-1)生成,并将运算符从右向左应用。 ... -3 = ~-~-~0 -2 = ~-~0 -1 = ~0 0 = 0 1 = -~0 2 = -~-~0 3 = -~-~-~0 ... 您的表达式必须是尽可能地短,这意味着没有冗余部分~~,--,-0,或00。将表达式输出或打印为字符串或字符序列。 显示代码段 var QUESTION_ID=92598,OVERRIDE_USER=20260;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/92598/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var …

30
StringgnirtSStringgnirtSStringgnirtS
这对您来说是一个相对简单的挑战。 给定长度为N的字符串,向前输出该字符串,然后向后输出,然后向前,然后向后输出……等等。N次。例如,如果您输入的是 Hello! 您应该输出: Hello!!olleHHello!!olleHHello!!olleH 您也可以选择输出一个尾随换行符。 您的提交可以是完整程序,也可以是函数,并且您可以采用任何合理的格式进行输入和输出。例如,您可以从STDIN / STDOUT中获取IO,从函数中获取参数,并从文件中获取返回值,等等。您可以放心地假设输入字符串将不会为空,并且仅包含可打印的ASCII。您必须在一行上输出新字符串。因此,例如,如果最后一个示例的输出是 Hello! !olleH Hello! !olleH Hello! !olleH 这不是有效的解决方案! 这里是更多测试用例: Input: a Output: a Input: abcd Output: abcddcbaabcddcba Input: OK! Output: OK!!KOOK! Input: 4815162342 Output: 4815162342243261518448151623422432615184481516234224326151844815162342243261518448151623422432615184 Input: PPCG Output: PPCGGCPPPPCGGCPP Input: 42 Output: 4224 排行榜 由于这是一个代码高尔夫挑战,因此禁止了标准漏洞,以字节为单位的最短答案胜出!但是,这也是在任何特定语言中答案最短的竞赛。尽管Java答案不太可能会击败perl或某些打高尔夫球语言的答案,但拥有最短的Java答案仍然令人印象深刻。因此,您可以使用此页首横幅查看 所有语言中最短的答案,以及 每种语言的最短答案。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 # Language Name, N …
42 code-golf  string  code-golf  math  geometry  data-structures  repeated-transformation  code-golf  number  random  code-golf  math  rational-numbers  code-golf  ascii-art  animation  code-golf  ascii-art  number  code-golf  math  number  code-golf  data-structures  code-golf  string  parsing  code-golf  array-manipulation  random  permutations  code-golf  string  code-golf  parsing  code-golf  string  quine  code-golf  string  parsing  comment  code-golf  string  counting  natural-language  code-golf  string  decision-problem  code-golf  math  code-challenge  metagolf  test-battery  code-golf  string  code-golf  math  number  arithmetic  source-layout  code-golf  number  primes  decision-problem  code-golf  math  arithmetic  code-golf  date  code-golf  string  cryptography  code-golf  code-golf  chess  board-game  code-golf  geometry  grid  puzzle-solver  set-partitions  code-golf  number  natural-language  code-golf  ascii-art  code-golf  math  code-golf  string  ascii-art  kolmogorov-complexity  code-golf  string  natural-language  code-golf  game  board-game  tic-tac-toe  code-golf  ascii-art  hexagonal-grid  code-golf  string  comment  code-golf  internet  code-golf  sorting  code-golf  kolmogorov-complexity  unicode  code-golf  tips  code-golf  string  natural-language  code-golf  string  kolmogorov-complexity  source-layout  hello-world  code-golf  string  kolmogorov-complexity  counting  natural-language  code-golf  random  quine  code-golf  string  math  bitwise  code-golf  permutations  code-golf  string  code-golf  arithmetic 

30
作弊多项选择测试
介绍 在学习期间,我试图提出几种欺骗多选测试的方法。它基本上是多项选择答案的压缩版本。该方法如下: 测试答案: BCAABABA 这些可以转换为3个不同的数组,如果当前字母是答案,则表示true或false: B C A A B A B A A: [0, 0, 1, 1, 0, 1, 0, 1] B: [1, 0, 0, 0, 1, 0, 1, 0] C: [0, 1, 0, 0, 0, 0, 0, 0] 将这些数字解释为二进制会压缩很多。但这实际上可以进一步压缩。如果知道A和B的位置,则不需要C的位置。这可以通过按位NOT运算符完成: A: [0, 0, 1, 1, 0, 1, 0, 1] …

30
用位和字节编程
在这个挑战中,您将为我编写的一种简单语言编写一个解释器。该语言基于单个累加器A,该累加器A的长度恰好是一个字节。在程序的开头,A =0。这些是语言说明: !:反转 该指令仅将累加器的每一位取反。每个零变为1,每个零变为0。简单! >:右移 该指令将A中的每一位右移一位。最左边的位变为零,最右边的位被丢弃。 <:左移 该指令将A中的每一位向左移一位。最右边的位变为零,最左边的位被丢弃。 @:交换Nybbles 该指令将A的高四位与低四位交换。例如,如果A是01101010并且您执行@,则A将是10100110: ____________________ | | 0110 1010 1010 0110 |_______| 这就是所有指示!简单吧? 规则 您的程序必须在开始时接受一次输入。这将是一行代码。这不是交互式解释器!您只能接受一次输入,而不必在执行该行后循环回到起始位置。 您的程序必须评估所述输入。上面没有提到的每个字符都将被忽略。 然后,您的程序应以十进制打印出累加器的最终值。 适用有效编程语言的常规规则。 不允许出现标准漏洞。 这是代码高尔夫球,最小字节数获胜。 这里有一些小程序可以测试您提交的内容。箭头之前是代码,之后是预期结果: ! -> 255 !>> -> 63 !<@ -> 239 !nop!&6*! -> 255 请享用!

27
折号
给定一个数字,确定它是否为折叠数字。 折叠数是一个数字,如果您将其用二进制表示形式并将其“对折”成一半,那就是将数字的前半部分与后半部分的XNOR乘以XNOR乘以相反的数字得到的结果,您将得到零。 如果该数字的二进制位数为奇数,则其中间数字必须为1,并且在折叠时将被忽略。 由于这可能会使您感到困惑,因此我举一些例子: 178 178的二进制表示为 10110010 要折叠它,我们首先将其切成两半 1011 0010 我们下半年倒转 1011 0100 我们对这两个部分进行异或运算: 0000 这是零,所以这是一个折叠数。 1644年 1644的二进制表示为 11001101100 要折叠它,我们首先将其切成两半 11001 1 01100 中间位是1,因此我们将其丢弃。 11001 01100 我们下半年倒转 11001 00110 我们对这两个部分进行异或运算: 00000 这是零,所以这是一个折叠数。 4254 4254的二进制表示为 1000010011110 要折叠它,我们首先将其切成两半 100001 0 011110 中间位是0,因此这不是折叠数。 任务 您的任务是接受一个正数,如果该数字是可折叠的,则返回一个真值;如果不是,则返回虚假的值。这是代码高尔夫球,因此请尽量减少字节数。 测试用例 以下是前99个折叠数字: [1, 2, 6, 10, 12, 22, …

30
按二进制1的计数对数字排序
目标 编写函数或程序,将整数数组按其二进制表示形式中存在的1的数量降序排列。不需要二级排序条件。 示例排序列表 (使用16位整数) Dec Bin 1's 16375 0011111111110111 13 15342 0011101111101110 11 32425 0111111010101001 10 11746 0010110111100010 8 28436 0000110111110100 8 19944 0100110111101000 8 28943 0000011100011111 8 3944 0000011111101000 7 15752 0011110110001000 7 825 0000000011111001 6 21826 0101010101000010 6 输入值 一个32位整数数组。 输出量 按描述排序的相同整数的数组。 计分 这是在一周内要选择的最少字节数的代码高尔夫球。

22
XOR乘法
您的目标是以尽可能少的字节实现下面定义的XOR(无载)乘法运算。 如果我们^将按位XOR()视为二进制加法而不携带 101 5 ^ 1001 9 ---- 1100 12 5^9=12 我们可以@通过执行二进制长乘法来执行XOR乘法,但是执行加法步骤而不进行按位XOR ^。 1110 14 @ 1101 13 ----- 1110 0 1110 ^ 1110 ------ 1000110 70 14@13=70 (对于数学家,这是多项式环中的乘法,通过将Z F_2[x]评估x=2为多项式来标识具有自然数的多项式。) XOR乘法通过按位XOR 交换a@b=b@a,关联(a@b)@c=a@(b@c)和分布a@(b^c)=(a@b)^(a@c)。实际上,a@b=a*b每当匹配乘法a并且b是2like的幂时,就是这样独特的运算1,2,4,8...。 要求 以两个非负整数作为输入和输出或打印其XOR乘积。这应该是数字或其十进制字符串表示形式,而不是二进制扩展名。最少的字节数获胜。 不用担心整数溢出。 这是一些格式为的测试用例a b a@b。 0 1 0 1 2 2 9 0 0 6 1 6 …

30
计算整数的二进制值中最长的1序列
目标 给定一个非负整数,创建一个函数,该函数返回该整数的二进制值中最大的连续1的个数的起始位置。 得到输入后0,返回0。 如果数字具有多个等长的条纹,则必须返回最后一个条纹的位置。 输入值 大于或等于 0 的整数。 输出量 整数,如下所述。 规则 这是代码高尔夫球,因此每种语言中以字节为单位的最短代码为准。 禁止出现标准漏洞。 示例和测试用例 例子1 您的函数传递整数142 142等于二进制的10001110 最长条纹是“ 111”(三个条纹) 条纹从2 ^ 1位置开始 您的函数返回1作为结果 例子2 您的函数被传递给整数48 48等于110000的二进制 最长条纹是“ 11”(两个条纹) 条纹从2 ^ 4位置开始 您的函数返回4作为结果 例子3 您的函数被传递给整数750 750等于二进制的1011101110 最长条纹是“ 111”(三个条纹) 由于存在两个等长的条纹,因此我们返回后面的条纹。 以后的条纹开始于2 ^ 5位置 您的函数返回5作为结果

30
中位数:平均挑战
给定整数N> = 1,输出从0到N-1的整数的平均位数 规格 可以将输出计算为从0到N-1的每个整数的二进制表示形式的位数之和,再除以N。 在这种情况下,整数的二进制表示形式没有前导零,但零除外,它在二进制形式中表示为0。 输出应准确到至少7个有效数字。 例 N = 6 0: 0 : 1 bit 1: 1 : 1 bit 2: 10 : 2 bits 3: 11 : 2 bits 4: 100 : 3 bits 5: 101 : 3 bits 平均位数=(1 +1 + 2 + 2 + 3 + …

27
位反转排列
您的目标是创建一个函数或程序来反转给定整数n的整数范围内的位。换句话说,您想要找到2 n项范围(零索引)的位反转排列。这也是OEIS序列A030109。此过程通常用于计算快速傅立叶变换,例如用于FFT的就地Cooley-Tukey算法。计算长度为2的幂的序列的FFT 也是一个挑战。 此过程要求您迭代[0,2 n -1] 范围,并将每个值转换为二进制值并反转该值中的位。您会将每个值都视为以2为底的n位数字,这意味着反转只会在最后n位之间发生。 例如,如果n = 3,则整数范围为[0, 1, 2, 3, 4, 5, 6, 7]。这些是 i Regular Bit-Reversed j 0 000 000 0 1 001 100 4 2 010 010 2 3 011 110 6 4 100 001 1 5 101 101 5 6 110 011 3 7 …

20
吸血鬼兼容性
关于吸血鬼的鲜为人知的事实是,他们必须喝具有兼容的供血者血型的受害者的血液。吸血鬼的相容性矩阵与常规红细胞供体/受体矩阵相同。可以通过以下美国红十字会表格进行总结 Type You Can Give Blood To You Can Receive Blood From A+ A+, AB+ A+, A-, O+, O- O+ O+, A+, B+,AB+ O+, O- B+ B+, AB+ B+, B-, O+, O- AB+ AB+ everyone A- A+, A-, AB+, AB- A-, O- O- everyone O- B- B+, B-, AB+, AB- …

26
整数的数字硬度
要找到整数的数字硬度,请使用二进制表示形式,并计算可以删除前导和尾随的次数,1直到它以a开头或结尾为止0。去除的总位数是其数字硬度。 这是一个冗长的解释-因此,让我们用一个可行的例子来分解它。 在此示例中,我们将使用数字3167。在二进制文件中,这是: 110001011111 (请注意,在转换为二进制文件的过程中,应确保去除前导零) 它不是以开头或结尾0,因此我们删除了1对位: 1 1000101111 1 还有一个: 11 00010111 11 但是现在开始时有一个0,所以我们不能再删除1对了。总共4个比特我们除去,所以4是数字硬度3167。 但是,对于可以写为2 n -1表示正n的数字(即仅包含1二进制表示形式),永远不会达到0,因此可以删除所有位。这意味着硬度只是整数的位长。 挑战 您的任务是编写一个程序或函数,给定一个非负整数n >= 0,该程序或函数将确定其数字硬度。 您可以提交执行I / O的完整程序,或提交返回结果的功能。您的提交应适用n于您的语言的标准整数范围内的值。 测试用例 如果其中任何一个不正确,或者您想建议添加任何极端情况,请通知我。 0 -> 0 1 -> 1 8 -> 0 23 -> 2 31 -> 5 103 -> 4 127 -> 7 1877 -> 2 …

2
神经网络可以识别素数吗?
背景 识别素数似乎不适合(人工)神经网络。但是,通用逼近定理指出,神经网络可以逼近任何连续函数,因此特别应该可以表示一个人想要的任何有限支持的函数。因此,让我们尝试识别前百万个数字中的所有质数。 更准确地说,因为这是一个编程网站,所以我们将其设为2 ^ 20 = 1,048,576。低于此阈值的质数为82,025或大约8%。 挑战 您能找到将神经网络正确分类为素数或不素数的20个整数吗? 出于此挑战的目的,神经网络的大小是表示它所需的权重和偏差的总数。 细节 目标是最小化单个显式神经网络的大小。 您网络的输入将是一个长度为20的矢量,其中包含整数的各个位,分别用0和1或-1和1表示。这些的顺序可以是最高有效位在前或最低有效位在前。 网络的输出应为单个数字,以便在某个截止值以上将输入识别为质数,而在同一截止值以下则将输入视为非质数。例如,正数可能表示素数(负数不是素数),或者大于0.5可能意味着素数(小于0.5则不是素数)。 在所有2 ^ 20 = 1,048,576个可能的输入上,网络必须是100%准确的。如上所述,请注意,此范围内有82,025个素数。(因此,始终输出“非素数”的精度为92%。) 用标准的神经网络术语来说,这可能称为过拟合。换句话说,您的目标是完美拟合素数。可能使用的其他词语是“训练集”和“测试集”相同。 该挑战不考虑“可训练”或“可学习”参数的数量。确实,您的网络可能包含硬编码的权重,下面的示例完全是硬编码的。取而代之的是,所有的重量和偏见是考虑的参数和计数。 训练或生成您的神经网络所需的代码长度与您的分数无关,但是发布相关代码当然值得赞赏。 基准线 作为基准,可以“记住”所有82,025个素数,总重量和偏差为1,804,551。 请注意,下面的代码包含许多内容:工作示例,工作测试代码,使用已知神经网络库的神经网络的有效定义,“硬编码”(或至少不是“训练有素”)神经网络,和分数的有效衡量。 import numpy as np bits = 20 from keras.models import Sequential from keras.layers import Dense from sympy import isprime # Hardcode some weights weights = …

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.