Questions tagged «stateful»

涉及行为的挑战取决于解决方案以前的调用。

30
仅执行一次的代码
目标 这项挑战的目标是编写仅执行一次的代码。这基本上意味着它会以某种方式损坏程序,脚本或环境。如果重新引导系统,则允许代码再次运行。 计分 票数。所有假设必须清楚列出。仅启动重新启动或暂停的任何答案将被取消资格。 附加规则,因为格雷格·休吉尔(Greg Hewgill)是半神 不允许root访问。 结束日期 比赛将于2014年5月31日截止。 编辑 该比赛已更改为人气比赛。

10
小钱德勒很伤心。画他的云,使他振作起来
小钱德勒很伤心。画他的云使他振作起来。 注意:画云实际上不会使他振作起来。 圆可以定义为三元组(x,y,r),其中x是圆在笛卡尔平面上的x位置,是圆在笛卡尔平面y上的y位置以及圆r的半径。x并y可能是负面的。r永远是积极的。输入是以空格分隔的三元组形式的圆的列表。例如: 3,1,1 3,2,1.5 1,2,0.7 0.9,1.2,1.2 1,0,0.8 的3,1,1意思是“在与中心点的圆3,1与1个半径。3,2,1.5是指”在与中心点的圆3,2用1.5半径。 如果我们在图形上绘制输入的所有这些圆,则看起来像这样(我仅出于清晰起见添加了网格线和标签;它们不是必需的): 注意所有的圆是如何凝聚的。也就是说,它们全部重叠在一起,从而形成一个大的组,而没有其他的小圈子。输入保证是内聚的。 假设现在绘制一条绕这些圆形成的“边界”行进的线,而没有其他任何线。就像绘制所有圆组成的轮廓的边界一样。生成的云看起来像这样: 因此,仅通过在输入中绘制形成边界的圆弧来形成单一形状即可形成此云。换句话说,仅通过绘制不在另一个圆内的圆弧来形成云。您的程序将以上述形式接受输入,并输出显示结果云的图像。云的整体形状必须正确,但是比例,颜色,线条粗细以及在顶点处的外观取决于您。请注意,云必须是可见的,因此您不能拉出类似“此程序在白色背景上绘制白色云”,“此程序以无限小的比例绘制云”,“此程序以0绘制云”之类的内容。线宽”等。还请注意,边框的颜色必须与填充或背景的颜色不同。 另一个例子。输入: 1,4,2 5,2,1 3,1,1 3.5,2,1.2 3,3,0.7 1,2,0.7 输出: 如果云中存在“洞”,则也应绘制该洞。输入: 0,5,4 3,4,4 4,3,4 5,0,4 4,-3,4 3,-4,4 0,-5,4 -3,-4,4 -4,-3,4 -5,0,4 -4,3,4 -3,4,4 输出: 这是一条重要规则:您的程序必须仅绘制形成边框的线。这意味着您不能简单地完全绘制圆,然后用白色填充将圆绘制得稍小一些,因为该方法仍会绘制不形成边界的线,之后只会将其覆盖。该规则的目的是防止“绘制圆,然后用白色填充再次绘制圆”的实现或类似的方法。预计答案将在绘制之前实际计算出绘制对象的位置。 这是代码高尔夫球,因此最短的字符数获胜。

30
追加字符串长度
挑战: 给定s字符a- z,A- Z,0- 上的字符串9,将其长度附加s到其自身,将长度中的其他字符计为的总长度s。 输入: 只是任意长度的字符串(可以为空)。 输出: 相同的字符串,但其长度附加到末尾。代表长度的字符也应算作长度的一部分。如果要附加多个有效长度,请选择最小的长度(有关示例,请参见测试用例)。 测试用例: INPUT -> OUTPUT // Comment aaa -> aaa4 -> 1 // Empty string aaaaaaaa -> aaaaaaaa9 // aaaaaaaa10 would also normally be valid, but violates using the smallest number rule mentioned above aaaaaaaaa -> aaaaaaaaa11 a1 -> a13 // Input …
51 code-golf  string  code-golf  string  random  code-golf  array-manipulation  code-golf  ascii-art  kolmogorov-complexity  random  code-golf  array-manipulation  code-golf  stateful  code-golf  hello-world  code-golf  string  code-golf  interpreter  lisp  code-golf  restricted-source  quine  palindrome  code-golf  ascii-art  random  generation  challenge-writing  ascii-art  random  polyglot  maze  answer-chaining  string  cops-and-robbers  whitespace  code-golf  string  cops-and-robbers  whitespace  code-golf  number  sequence  code-golf  date  code-golf  ascii-art  decision-problem  code-golf  combinatorics  chemistry  code-golf  kolmogorov-complexity  source-layout  radiation-hardening  code-golf  ascii-art  path-finding  maze  code-golf  string  ascii-art  game  animation  code-golf  string  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  restricted-source  new-years 

30
您语言中最短的代码,可在重新启动后保留字符串
您的程序: 您将编写两个程序(都使用相同的语言)。存储程序从STDIN中获取一个字符串,并将其存储在持久的位置(请参见下文),然后无错误退出。检索程序不输入任何内容,检索存储的字符串,然后将其打印到STDOUT。 持久性的客观测试: 您应该能够在本地计算机上运行存储程序,然后重新启动本地计算机,然后调用本地计算机上的检索程序。只要通过此重新启动测试,就可以随意存储字符串(即使在Web上)。 测试用例: 存储然后检索: echo foo | Store Retrieve foo 重复存储应覆盖(如set()方法): echo foo | Store echo bar | Store Retrieve bar 重复检索是非破坏性的(例如get()方法): echo foo | Store Retrieve foo Retrieve foo 在调用存储之前进行检索: 您无需为此担心。您的检索程序可以假定该存储程序已在过去的某个时间运行。 输入/输出灵活性。 人们要求我将其从严格的STDIN / STDOUT扩展到标准IO规则。我不能,因为这会引入太多漏洞。一些标准IO选项已经以持久方式存储了输入,例如“程序可以从文件中获取输入”。我想比严格的STDIN和STDOUT更灵活,但不要打开闸门。 从标准的IO规则线程中,我正在挑选那些不会克服挑战的规则: 如果需要,程序可以通过GUI提示符和命令行提示符进行输入 程序可以通过在屏幕上显示来输出,包括GUI对话框 程序可以通过命令行参数进行输入 程序可以输出到STDERR,但实际上仍然不会引发错误。 如果使用备用选项,则必须是用户交互的。除了将输入输入到程序中,将其输入程序提供的提示中或将输入作为程序的命令行参数输入之外,用户无需执行任何其他工作。除了运行您的检索程序之外,用户无需执行任何其他操作即可看到屏幕上显示的输出或发送到STDOUT或STDERR的输出。 允许的假设: 您的两个程序将在同一目录中运行 您的程序对该目录具有读写权限 您创建的文件将在重启后保留下来(不在临时目录中) 允许使用不属于字符串的尾随换行符。没有其他尾随空格 这是代码高尔夫球,您的得分是这两个程序的字节总和。

30
3…2…1…崩溃了!
您的任务是编写一个完整的程序,该程序每次运行时将从10开始递减计数。 首次运行该程序时,应打印10。 下一次,它应该输出9。 下次,它应该输出8,依此类推。 0该程序应崩溃而不是打印。之后,您不必处理程序再运行任何次。 在第一次执行程序之前,可以假定用于存储的任何设备为空。 这是Python 3中的示例实现: try:f=open("a","r+");v=int(f.read()) except:f=open("a","w");v=10 1/v print(v) f.seek(0) f.write(str(v-1)) 这是代码高尔夫球,因此最短的答案(以字节为单位)获胜。

30
ASCII三角形
您的任务是编写一个打印ASCII三角形的程序或函数。他们看起来像这样: |\ | \ | \ ---- 您的程序将采用单个数字输入n,并带有约束0 <= n <= 1000。上面的三角形的值为n=3。 ASCII三角形将具有n反斜杠(\)和竖线(|),n+1线和破折号(-),并且每行除最终行外还将具有等于行号(从0开始,即第一行为行0)的空格。 。 例子: 输入: 4 输出: |\ | \ | \ | \ ----- 输入: 0 输出: 在此测试用例中,输出必须为空。没有空格。 输入: 1 输出: |\ -- 输入和输出必须完全是我指定的方式。 这是代码高尔夫球,因此请争取尽可能短的代码!
30 code-golf  ascii-art  code-golf  rubiks-cube  code-golf  path-finding  maze  regular-expression  code-golf  math  rational-numbers  code-golf  kolmogorov-complexity  graphical-output  code-golf  tips  code-golf  string  permutations  code-golf  sorting  base-conversion  binary  code-golf  tips  basic  code-golf  number  number-theory  fibonacci  code-golf  date  code-golf  restricted-source  quine  file-system  code-golf  code-golf  math  code-golf  ascii-art  code-golf  math  primes  code-golf  code-golf  math  matrix  code-golf  string  math  logic  factorial  code-golf  palindrome  code-golf  quine  stateful  code-golf  interactive  code-golf  board-game  code-golf  math  arithmetic  code-golf  string  code-golf  math  matrix  code-golf  math  abstract-algebra  polynomials  code-golf  date  code-golf  string  array-manipulation  sorting  code-golf  game  code-golf  string  code-golf  ascii-art  decision-problem  code-golf  number  sequence  code-golf  code-golf  code-golf  sequence  fibonacci  code-golf  math  geometry  random  code-golf  code-golf  math  decision-problem  fractal  rational-numbers  code-golf  number  number-theory  code-golf  combinatorics  permutations  card-games  code-golf  math  sequence  array-manipulation  fibonacci  code-golf  sequence  decision-problem  graph-theory  code-golf  ascii-art  parsing  lisp  code-golf  string  math  natural-language  logic  code-golf  math  logic  code-golf  string  alphabet  code-golf  string  code-golf  string 

9
增量Quine
``您的任务是编写一个程序或函数,每次运行时输出其源代码的第一个字符,然后输出第二个字符,然后输出第三个字符。 例如,如果您的程序使用file foo中的语言,那么您应该获得类似于以下内容的输出:barbaz.bar λ bar baz.bar f λ bar baz.bar o λ bar baz.bar o 程序以这种方式打印源代码后,便可以执行任何操作。您可以修改文件的源代码,但是请记住,要打印的源代码是原始源代码。 这是一个代码高尔夫球,因此以字节为单位的最短程序获胜。

15
跟着我重复!
给定一个字符串作为参数,输出最长的不重叠重复子字符串的长度;如果没有这样的字符串,则输出零。 您可以假设输入字符串不为空。 例子 abcdefabc:子字符串abc在位置1和7处重复,因此程序应输出3 abcabcabcabcab:abcabc或bcabcaor cabcab重复,因此程序应输出6。(子字符串abcabcabcab也被重复,但是出现的部分重叠,因此我们不接受它)。 aaaaaaa:aaa例如在位置1和4处重复,因此程序应输出3 abcda:a重复,因此程序应输出1 xyz:没有重复的字符串→ 0 ababcabcabcabcab:应返回6 这是代码高尔夫球,因此最少的字节获胜。
23 code-golf  string  code-golf  code-golf  kolmogorov-complexity  primes  code-golf  kolmogorov-complexity  hexadecimal  code-golf  code-golf  string  code-golf  string  random  code-golf  array-manipulation  code-golf  ascii-art  kolmogorov-complexity  random  code-golf  array-manipulation  code-golf  stateful  code-golf  hello-world  code-golf  string  code-golf  interpreter  lisp  code-golf  restricted-source  quine  palindrome  code-golf  ascii-art  random  generation  challenge-writing  ascii-art  random  polyglot  maze  answer-chaining  string  cops-and-robbers  whitespace  code-golf  string  cops-and-robbers  whitespace  code-golf  number  sequence  code-golf  date  code-golf  ascii-art  decision-problem  code-golf  combinatorics  chemistry  code-golf  kolmogorov-complexity  source-layout  radiation-hardening  code-golf  ascii-art  path-finding  maze  code-golf  string  ascii-art  game  animation  code-golf  string  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  restricted-source  new-years 

6
保存我的秘密!
我有很多秘密,无处可保留! 目标很简单:编写一个程序,让您保存字符串并用密码保护它。 该程序将使用别名,密码和(可选)机密作为参数。 如果这是第一次使用给定的别名调用程序,则它将存储/记住机密,并输出所需的内容。 如果使用以前使用过的别名调用该程序,则当密码与使用该别名第一次运行该程序的密码相同时,它将输出该别名的秘密。 其他情况 如果它是第一次使用某个别名被调用而没有给出任何秘密,则不存储任何内容。 如果使用已使用的别名调用程序,并且密码不正确-请返回任何错误或完全不返回任何错误。 如果使用已使用的别名调用该程序,则密码正确并提供了一个新机密-输出旧机密并将其替换为新机密,以便下次仅输出新机密。 如果使用已使用的别名调用该程序,则密码正确且不提供新的密码-输出旧密码并确保不会被替换。 注意:这些机密/密码不需要安全存储 另请注意:别名,密码和机密的任何字母数字输入都应被接受 适用标准规则,祝您好运!

12
下班同事的问候机器人
我有一个同事在工作,每个星期二和星期四在家工作。在大约8:00 AM,他向我们发送了以下消息: 你好,今天我在家工作 为了减轻他每天待在家里的负担,我们希望为他自动化此任务。 挑战 编写尽可能少的字节的一段代码: 接收当前时间:您的代码可能会接收当前年,月(1-12),月(1-31),小时(0-23)和分钟(0-59)以及星期几的值(您可以选择此数字是从0还是1开始,如果0/1表示星期日,星期一或其他任何一天);另外,您可能会收到一个结构,如Date,DateTime,Calendar或者任何其他时间相关的结构,如果你的语言允许它。yyyyMMddHHmm如果需要,您还可以接收带有日期的字符串,或者包含两个单独的日期和时间字符串,然后是带有星期几的整数。随便吧。 返回两个一致的真实和错误值,指示是否必须将消息发送到工作聊天室。 规则 假定这段代码是定期调用的。尽管如此,确切的周期是无关紧要的。 如果星期几是星期二或星期四,时间是8:00 AM,错误余量为10分钟(包括7:50至8:10),则必须返回真实值。 只有在指定日期的这些小时之间第一次调用代码时,才必须发送真实值。我们不希望机器人连续发送多次相同的消息。您管理此限制的方式完全取决于您。 您的代码可能是重复执行的独立程序,也可能是始终运行的较大代码的一部分。你的选择。 您可以假设在执行代码之间不会重新启动。 您可能会认为日期永远是正确的。 鼓励对代码进行解释,尤其是对用于实现持久性的方法的解释。 例子 (Week starts on Monday: 1, the following invokations will be made in succession) 2018,08,27,08,00,1 = falsey (not Tuesday or Thursday) 2018,08,28,07,45,2 = falsey (out of hours) 2018,08,28,07,55,2 = truthy (first time invoked …

13
永久自修改代码
现在,我们都知道大多数语言都有非常简单的方法来“自我修改”代码。但是,如果要在磁盘上实际修改代码并编辑其中的一部分,该怎么办? 您的目标是制作打印数字的代码,然后编辑自己的文件,用斐波那契数列中的下一个替换该数字,如下所示: $ ./program 1 $ ./program 1 $ ./program 2 $ ./program 3 $ ./program 5 [etc...] 规则 您不能将代码存储在代码的“外部”。没有评论,没有告诉脚本退出,没有EOF等。 如果您的代码可以使用任何文件名,请从字节数中减去2并$BYTESNOW ($ORIGINALBYTES - 2)输入标题。(假定文件名在任何字母数字文件路径的范围内。) 您的代码必须自己将输出写入文件,而无需任何外部管道协助。 您的代码可以从一或零开始。没关系

4
正在运行多少个实例?
编写一个无限期运行的程序,以报告其当前正在运行的实例数量。程序的每个实例还应报告所有其他当前正在运行的实例中打开该程序的顺序。 例 用户启动程序的第一次-我们称这个实例1实例1的显示器1/1,因为它是第一个总的上马出实例1当前运行的实例。 在实例1运行时,用户第二次启动该程序以成为实例2。实例1现在显示1/2,是总共2个当前正在运行的实例中的第一个实例。实例2显示为,因为它是总共2个当前正在运行的实例中的第二个实例。2/2 假设用户继续生成更多实例,直到有5个实例为止。按照启动的顺序,它们的输出为:1/5 2/5 3/5 4/5 5/5。 现在,假设用户决定终止实例3,然后实例4成为新的实例3,实例5成为新的实例4,因为它们分别是已启动的第3和第4个实例(现在总数为4)实例。因此,每个实例的输出变化如下: 1/5 → 1/4 2/5 → 2/4 3/5 →(终止) 4/5 → 3/4 5/5 → 4/4 规则 您可以以任何合理的格式输出两个数字(实例号,实例总数)。 每当实例启动或终止时,所有其他实例必须在100毫秒内更新其各自的输出。 如果选择通过打印到新行(或其他“附加”输出格式;而不是替换)来更新输出,则必须仅在实例数更改时打印,而在其他任何时间都不要打印。 这是代码高尔夫。以字节为单位的最短程序获胜。 在您的答案中,建议您指定用户必须执行的操作才能打开多个实例,和/或录制截屏视频以进行演示。

4
熵奎因!
您的任务是编写一个程序或函数,其中: 首次运行时,输出其源代码。 在随后的执行中,它应该输出先前输出的内容,但是会随机更改一个字符(定义如下)。它不必是一致的随机变化,但是每个可能的变化都应该有非零的发生机会。 第一次执行后,您的程序将不再是奎因。输出将已更改(该程序也可以自由修改自己)。 例如,如果您的quine是ABCD,则反复运行它可能会打印: ABCD A!CD j!CD j!CjD 技术指标 字符更改是: 插入一个随机字符, 删除随机字符,或 用新的随机字符替换字符。请注意,新字符允许与其替换的字符相同,在这种情况下,将不会进行任何更改。 当然,从空字符串中删除或替换字符不是有效的更改。 尽管将其标记为quine,但禁止阅读源代码的规则并不适用。 您可以使用任何字符集,只要它包含源代码中使用的字符即可。

5
猴岛:航海家的头
警告:此挑战包含“猴岛的秘密”中的一些轻微破坏者。 在游戏快要结束时,导航员的魔术头正带领您穿过地下墓穴: 您需要它的眼球项链,但头部不愿意将它提供给您。获得它的一种方法就是继续乞讨: Guybrush:请给我那条项链吗? 负责人:不,但感谢您如此礼貌地问。 Guybrush:哦,拜托,pleeeeease? 负责人:您可以乞求一切,但不能拥有。 Guybrush:好吗? 负责人:您可以乞求一切,但不能拥有。 Guybrush:好漂亮吗? 负责人:您可以乞求一切,但不能拥有。 Guybrush:可以在上面放糖吗? 头:哦,好的,你这个大宝贝。你可以拥有它。嘿,如果没有肩膀,项链有什么用? 挑战 编写一个完整的程序,打印上述对话框。要注意的是,每次调用该程序时,它应该只打印两行(Guybrush和Head的响应恳求一遍)。例如,如果您的提交是用Python编写的,用法应如下所示: $> python please.py Guybrush: May I please have that necklace? Head: No, but thanks for asking so politely. $> python please.py Guybrush: Oh come on, pleeeeease? Head: You can beg all you want, but you …
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.