Questions tagged «code-golf»

Code-golf是在最小的源代码字节中解决特定问题的竞赛。

28
计算Phi(非Pi)
不,我不是说ϕ = 1.618...和π = 3.14159...。我的意思是功能。 φ(x)的是一个整数小于或等于的数量x互质到x。 π(x)是小于或等于的素数x。 假设“非pi”为π̅(x),并将其定义为小于或等于的复合数x。 任务 给定一个严格的正整数x,计算φ(π̅(x))。得分以字节为单位。 例子 每行包括输入(从1到100,包括1和100),以及由空格分隔的相应输出。 1 0 2 0 3 0 4 1 5 1 6 1 7 1 8 2 9 2 10 4 11 4 12 2 13 2 14 6 15 4 16 6 17 6 18 4 19 4 …
73 code-golf  sequence  primes  number-theory  code-golf  decision-problem  code-golf  date  code-golf  typography  code-golf  math  number  multiple-holes  code-golf  quine  code-golf  string  syntax  code-golf  math  primes  rational-numbers  code-golf  graphical-output  image-processing  code-golf  kolmogorov-complexity  music  audio  code-golf  string  code-golf  math  geometry  code-golf  math  sequence  combinatorics  code-golf  game  grid  board-game  code-golf  restricted-source  array-manipulation  source-layout  code-golf  base-conversion  binary  code-golf  math  physics  code-golf  math  number  date  expression-building  code-golf  array-manipulation  graph-theory  decision-problem  popularity-contest  error-correction  code-golf  kolmogorov-complexity  geometry  grid  code-challenge  arithmetic  combinatorics  set-partitions  code-golf  kolmogorov-complexity  sequence  fibonacci  code-golf  restricted-source  pristine-programming  code-golf  code-golf  string  kolmogorov-complexity  code-golf  arithmetic  code-golf  string  parsing  code-golf  code-golf  sorting  counting  permutations  3d  code-golf  code-golf  ascii-art  music  code-golf  string  code-golf  string  ascii-art  code-golf  string  code-golf  quine  polyglot  code-golf  math  string  code-golf  internet 

30
哈斯克尔高尔夫技巧
您在Haskell打高尔夫球有哪些一般秘诀?我正在寻找可以应用于编码高尔夫问题的想法,这些想法至少在某种程度上特定于Haskell。每个答案请只发表一个提示。 如果您是Haskell的高尔夫新手,请参阅Haskell的高尔夫规则指南。还有一个专门的Haskell聊天室:Monads and Men。

30
未折叠数字
任务 给定一串英文数字名称,它们“一起折叠”,如下所示: zeronineoneoneeighttwoseventhreesixfourtwofive 将字符串拆分回数字: zero nine one one eight two seven three six four two five 规则 输入始终是字符串。它始终由一个或多个小写的英文数字名称组成,折叠在一起,仅此而已。 英文数字名称为zero one two three four five six seven eight nine。 输出可以是字符串列表,也可以是新字符串,其中的数字由非字母,非空字符串分隔。(您的输出也可以选择在开头或结尾处包含这样的字符串,并且分隔符不必保持一致。因此,即使这样,{{ zero0one$$two );也是有效的答案(如果很荒谬)zeroonetwo。) 以字节为单位的最短答案将获胜。 测试用例 three -> three eightsix -> eight six fivefourseven -> five four seven ninethreesixthree -> nine three six …
72 code-golf  string 

16
世界上最小的Web浏览器
幕后故事: 您可以在一家大型跨国公司享受新的编程工作。但是,由于您的计算机只有一个CLI,因此不允许浏览网络。它们还会对所有员工的硬盘进行扫描,因此您不能简单地下载大型的CLI Web浏览器。您决定制作一个尽可能小的小型文本浏览器,以便记住并每天将其键入到临时文件中。 挑战: 您的任务是在命令行界面中创建高尔夫Web浏览器。这应该: 通过args或stdin输入一个URL 拆分URL 的directory和host组件 发送一个简单的HTTP请求到host以请求directory 打印任何<p>段落</p>标签的内容 然后退出或要求另一页 更多信息: 一个简单的HTTP请求如下所示: GET {{path}} HTTP/1.1 Host: {{host}} Connection: close \n\n 结束换行符强调。 典型的响应如下: HTTP/1.1 200 OK\n <some headers separated by newlines> \n\n <html> ....rest of page 规则: 它只需要在端口80上工作(不需要SSL) 您可能不使用netcat 无论使用哪种编程语言,都仅允许使用低级TCP API(netcat除外) 您可能不使用GUI,请记住,这是一个CLI 除内置解析器外,您不能使用HTML解析器(BeautifulSoup不是内置的) 奖金!!如果您的程序循环返回并要求另一个URL而不是退出,则为-40个字符(只要您不使用递归) 没有第三方程序。请记住,您无法安装任何东西。 code-golf,所以最短的字节数获胜

30
生日快乐V!
感谢@KritixiLithos 帮助我解决了这一挑战! V是我编写的一种编程语言,因此我可以使用vim并将其扩展到代码高尔夫球挑战中。第一次提交是在2016年3月3日,这意味着今天V已满一岁!呜呼 在V成立的第一年,来自四个不同贡献者的176次提交,来自12个不同用户的140个答复以及太多重复的重复运算符无法计数。它有一个在线解释器,由@Dennis慷慨托管,自12月以来已运行了近8000次。 让我们来挑战庆祝V的生日吧!由于V中的大多数功能在设计时都考虑了字符串操作和ascii-art,因此,庆祝V的任何挑战都应该与ascii艺术有关,这似乎很自然。因此,您今天面临的挑战是将一个单词用作输入,然后将该单词重塑为V形。例如,输入“ Hello”应给出以下V: Hello olleH Hello olleH Hello olleH Hello olleH Hello olleH HellolleH HellleH HeleH HeH H 以下是有关您的V外观的一些详细信息。如果输入字符串的长度为n个字符,则V应为多n*2行。第一行应包括: <input string><(n*2) - 1 spaces><input string reversed> 在每一行中,在开头添加一个空格,并且字符串的两侧彼此相对移动,从而删除所有重叠的字符。直到最后一行,这只是输入的第一个字符。每行尾随空格都是可以接受的,尾随换行符也是允许的。 您可以假定输入将始终是可打印的ASCII,且其中没有任何空格,并且可以采用任何合理的方法进行输入和输出。以下是一些示例输入: Happy: Happy yppaH Happy yppaH Happy yppaH Happy yppaH Happy yppaH HappyppaH HapppaH HapaH HaH H Birthday: Birthday yadhtriB …

30
在不使用每个元音的情况下打印字母
启示:1939年,一个名叫欧内斯特 ·文森特·赖特(Ernest Vincent Wright)的人写了一部名为《加兹比》的小说,没有使用字母“ e”。 您的任务是用任何一种语言(具有基于文本的语法*)编写一组(最多5个)程序,以按顺序输出所有26个字母。但是,对于每个元音aeiou,至少一个程序不得包含任何出现的元音。 所以一定有 在程序语法中的任何地方都不使用“ a ”或“ A ”的程序。 在程序语法中的任何地方都不使用' e '或' E '的程序。 不使用程序“ 我 ”或“ 我 ”在程序的语法的任何地方。 在程序语法中的任何地方都不使用' o '或' O '的程序。 在程序语法中的任何地方都不使用“ u ”或“ U ”的程序。 它们都必须输出abcdefghijklmnopqrstuvwxyz。 优胜者应是所有程序长度最短的解决方案。 *因为约束在Piet或Whitespace中并不是什么挑战 当前排名(2014年3月6日): 一个 PL:11 乙灰:31 乙 efunge:26 B urlesque:12 乙 rainfuck:38 Ç:84 C#:278/149 Ç果酱:6 Ç lojure:81 …

30
我是粗鲁的号码吗?
现在有一段时间,我指望手指时一直遇到问题,特别是我只能数到十。我对这个问题的解决方案是用手指数二进制,将拇指放一个,食指放两个,拇指和食指放三个,等等。但是,当我们进入四号。具体而言,它要求我们举起中指,这会导致一个相当不幸的手势,这在社会上通常是不可接受的。这种数字是粗鲁的数字。当我们抬起第二只手的拇指和第一只手的中指时,我们到达下一个粗鲁的数字36。原始数字的定义是在这种计数系统下导致我们仅输入任何手的中指。一旦我们超过了1023(一个人可以达到的最大数目,两只手各五个手指),就假设我们继续第三只手,并根据需要添加其他手。 你的任务: 编写一个程序或函数,该程序或函数接收输入,并根据输入是否为粗鲁的数字输出真/假值。 输入: 0到10 9(含)之间的整数。 输出: 真/假值,指示输入是否为粗鲁的数字。 测试用例: Input: Output: 0 ---> falsy 3 ---> falsy 4 ---> truthy 25 ---> falsy 36 ---> truthy 127 ---> falsy 131 ---> truthy 得分: 这是代码高尔夫球,因此以字节为单位的最低分数获胜。

30
“ 99瓶啤酒”
编写一个程序,以尽可能少的字节将歌词输出到99瓶啤酒。 歌词: 99 bottles of beer on the wall, 99 bottles of beer. Take one down and pass it around, 98 bottles of beer on the wall. 98 bottles of beer on the wall, 98 bottles of beer. Take one down and pass it around, 97 bottles of beer on …

30
没有附加字符串(或数字)
如果您愿意,请考虑参加: 该官方Dyalog APL 2016年游戏 每月Dyalog APL 2017 Code Golf挑战赛 用相同的语言制作12个摘要/表达式,分别得出数字0到10和42,但不写任何文字数字,字符串或字符数据。 内置数据(如PI()和ALPHABET())很好,例如CJam的U,X,Y,Z和A常数,以及Processing的BLEND,CHORD,CENTER,BREAK和LINES。 每个摘录都必须能够独立存在,即它们可能不是相互依赖的。但是,在单个代码段内,您可以分配一个变量并自由使用它,只要您直接通过名称而不是通过包含其名称的字符串来引用它即可。 所有摘要在提交时(在SE的报告中)必须在提交者的计算机上有效,但可能不依赖于异常的本地条件,例如目录中文件的数量,确切的日期或时间或用户的特定输入。 有效片段的示例 3:INT(LOG10(YEAR(TODAY()))) 因为在可预见的将来仍然如此 4:CUBICROOT(LEN(CHARACTERSET())) 因为256个字母字符集非常常见 8:SQRT(SYSTEMTYPE()) 因为64位系统非常常见 无效摘要的示例 5:LEN(USERNAME()) 因为大多数人不使用“ Admin”作为登录名:-) 9:LOG10(SYSTEMMEMORY()) 因为它仅在具有1 GB内存的系统上运行 42:CODE("*") 因为它包含字符串/字符文字 每个代码段的结果都必须产生一个实际数字(值,整数,浮点数等),该数字可用于使用与代码段相同的语言进行进一步的计算,即不是表示该数字的文本字符串。 仅允许使用基于字符的语言。 分数是所有12个摘要的总字节数。不含摘要的换行符不计在内。 请注意,以上规则可能会阻止某些语言参与,即使它们已经完成了图灵设计。 常问问题 问程序可以接受任何输入吗? 答:可以,但您可能不仅仅要求输入并输入相关号码。 问:是否允许使用物理数字(非数据数字)数字? A是,例如LOG10()。 问:Ruby中的符号是否算作文字? 一个是。 问分数是否在每个摘录之间包含换行符? A号 问:TI-BASIC“基于字符”足够有效吗? 一个是。 问:假和真算作数字文字吗? 答:不可以。 问:如果那是唯一的方法,并且数字不影响函数的输出,我们可以使用数字文字来调用函数吗? 一个是,如果这是你的语言编写代码的正常方式。 问:我的语言假定每个程序/表达式的开头都有[something]。我是否必须包含它,或者如果放在程序/表达式的中间,我的代码片段是否应该起作用? 答:他们应该只在程序/表达式的中间工作。 …

30
永远数数
从一个开始,编写一个永远计数的程序。 规则: 您的程序必须登录STDOUT或可以接受的替代方法(如果STDOUT没有)。 您的程序必须是完整的,可运行的程序,而不是函数或代码段。 您的程序必须输出每个数字,并且每个数字之间必须有一个分隔符(换行符,空格,制表符或逗号),但是所有数字都必须保持一致。 您可以用十进制,一进制或以256为基数打印数字,其中每个数字均由字节值表示。 在合理的台式PC上,程序必须至少计数到2 128(含),才能没有问题且内存不耗尽。特别是,这意味着如果使用一元数,则无法在内存中存储当前数字的一元表示形式。 与我们通常的规则不同,即使使用的语言(或语言版本)比此挑战新,也可以使用。专门针对此挑战提交0字节答案的语言是公平的游戏,但并不是特别有趣。 请注意,必须有一个解释器,以便可以测试提交。允许(甚至鼓励)自己为以前未实现的语言编写此解释器。 这并不是要找到具有最短解决方案的语言(有些地方空程序会解决问题),而不仅仅是找到每种语言的最短解决方案。因此,没有答案将被标记为已接受。 目录 这篇文章底部的Stack Snippet会根据答案a)生成目录,a)作为每种语言最短解决方案的列表,b)作为整体排行榜。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 ## Language Name, N bytes N您提交的文件大小在哪里。如果您提高了分数,则可以通过打败旧分数来保持标题。例如: ## Ruby, <s>104</s> <s>101</s> 96 bytes 如果要在标头中包含多个数字(例如,因为您的分数是两个文件的总和,或者您想单独列出解释器标志罚分),请确保实际分数是标头中的最后一个数字: ## Perl, 43 + 2 (-p flag) = 45 bytes 您还可以将语言名称设置为链接,然后该链接将显示在代码段中: ## [><>](http://esolangs.org/wiki/Fish), 121 bytes 显示代码段 <style>body { text-align: left !important} #answer-list …

11
到底llhuii如何在42个字节的Python中输出Evil Number?
这是Python中打高尔夫的技巧问题,涉及无政府状态高尔夫上的邪恶数字问题。 如果数字的二进制扩展数具有偶数1,则该数字是有害的。面临的挑战是打印前400个邪恶数字0,3,5,...,795,797,798,每行打印一个。 Python 2提交由llhuii领导,提供42字节的解决方案。次佳的是mitch的46个字节,然后是五个47字节的提交。llhuii似乎发现了一些真正神奇的东西,在过去两年多的时间里,许多强大的Python高尔夫球手都无法使用它。对于如此短的高尔夫球,节省4或5个字节是巨大的。 我仍然有47个字节。我希望我们可以解决这个社区难题。如果我们共同获得答案,我将以所有贡献者的名义提交。这个问题的答案可以是一段代码,一个新想法或一段分析。如果您是llhuii,请不要为我们宠坏它。 尽管由于此问题是“无尽的”,所以未公开提交,但我们得到了一些线索。获胜的提交花了0.1699秒来运行,比任何其他时间都要长得多,这表明该方法效率低下。根据字节统计,在42个字符中,23个字母数字字符[0-9A-Za-z]和19个ASCII符号。这意味着llhuii解决方案中没有空格。 您可以在问题页面上测试代码,从语言下拉列表中选择Python或上传.py文件。注意: 使用Python 2.7 您的代码必须是可打印的完整程序 没有输入用于解决此问题,例如kolmogorov-complexity 您的程序只需打印给定的400个值,即使较大的值会中断 程序有2秒的运行时间 程序可能会因错误而终止 您可以使用exec;“ exec被拒绝”是指shell exec


30
得分剪刀石头布
给定两个字符串“ Rock”,“ Paper”或“ Scissors”的输入,确定RPS回合的结果。如果第一个玩家获胜,则输出1;如果第二个玩家获胜,则输出-1;如果平局,则输出0。 Rock Rock -> 0 Rock Paper -> -1 Rock Scissors -> 1 Paper Rock -> 1 Paper Paper -> 0 Paper Scissors -> -1 Scissors Rock -> -1 Scissors Paper -> 1 Scissors Scissors -> 0 您必须使用准确的字符串“ Rock”,“ Paper”和“ Scissors”作为输入。您可以选择(一致)第一还是第二是第一位玩家的选择。您也可以将它们作为带有单个字符或空分隔符的单个输入。在您的输入格式中,保证输入是三种选择的9种可能的配对之一。 输出应为数字1、0或-1或其字符串表示形式。漂浮物很好。那么是+1,+0,和-0。 相关:编写RPS游戏 排行榜: 显示代码段 var QUESTION_ID=106496,OVERRIDE_USER=20260;function …
70 code-golf  game 

30
输入∩源代码
介绍 挑战在于创建一个程序/函数,以打印其自身源代码和给定字符串输入的交集。这是代码高尔夫球,更准确地说: 让我们I可以在输入设置 {"a","b","c"} 让S是源代码集 {"b","f"} 然后交集就是他们共享的东西 I ∩ S = {"b"} 输入项 输入是灵活的。它应该能够处理用于源代码的字符编码。 输出量 输出灵活。它应该是输入和源代码共享的字符集。而且,集合是不同对象的无序集合。综上所述: 输出是灵活的: 可以是任何数据结构(字符串或其他) 可能是无序的 可能有尾随 \n 应该与众不同 限制 与quine挑战类似,程序/功能可能无法读取其自身的源代码,并且不允许使用0字节的解决方案。 例子 #1 functor x(I){ return I ∩ self; } Inputs Outputs ------ ------- enter preformatted text here -> {"e","n","t","r","f","o","x"} ["Albrt"," Einstin"] -> {"l","r","t","n","s"} #2 (_)->_&"(_)->&\"\\" Inputs …
70 code-golf  quine 

23
好吧,这很奇怪……不用等待,甚至!
前言 整数始终为偶数或奇数。偶数可被二整除,奇数不可。 当您将两个整数相加时,可以根据被加数是偶数还是奇数来推断结果是偶数还是奇数: 偶数+偶数=偶数 偶数+奇数=奇数 奇数+偶数=奇数 奇数+奇数=偶数 同样,当您将两个整数相乘时,可以根据因子是偶数还是奇数来推断结果是偶数还是奇数: 偶数*偶数=偶数 偶数*奇数=偶数 奇数*偶数=偶数 奇数*奇数=奇数 因此,如果您知道数学表达式中仅涉及加法和乘法的所有变量的偶数或奇数,则可以推断结果是偶数还是奇数。 例如,我们可以确信地说(68 + 99) * 37结果是奇数,因为偶数加上奇数(68 + 99)就是一个奇数,而奇数乘以另一个奇数(odd * 37)就是一个奇数。 挑战 编写一个仅包含四个字符的字符串的程序或函数eo+*。该字符串表示一个以前缀表示法给出的数学表达式,仅涉及加法(+)和乘法(*)。每个e代表任意的偶数,每个o代表任意的奇数。 您的任务是简化表达式,打印或返回单个e或o基于表达式结果是偶数还是奇数。 您可以假设输入将始终使用有效的前缀表示法。具体来说,每个+和*将始终具有两个对应的操作数。这些操作数可以是单个e或o,或另一个+或*表达式,又具有操作数。 例如,输入*+eoo可以读取为mul(add(e, o), o)或(e + o) * o以普通的中止符号表示。在e与第一o是对应于操作数+,以及+eo最后o是对应于操作数*。 为了清楚起见,这是一些无效的输入,这些输入的前缀表示法不正确: eo ooe o+e ee* +*oe +e*o 输出中的单个尾随换行符就可以了,但否则,应该输出的是e偶数还是o奇数。 以字节为单位的最短代码获胜。 测试用例 (空行仅用于帮助从视觉上区分相似的案例。) e -> e o -> o …

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.