Questions tagged «restricted-source»

对用于解决挑战的源代码施加了限制,例如,源代码中没有数字。

30
无效的Invali无效
这个想法大致基于@TùxCräftîñg的聊天消息。 看一下下面的示例序列: INVALID0,INVALID1,INVALID2 INVALID3,INVALID4...INVALID9 之后INVALID9,它像这样继续: INVALI0,INVALI1,INVALI2,INVALI3...INVALI9 之后INVALI9,是这样的: INVAL0,INVAL1,INVAL2,INVAL3...INVAL9 之后,INVAL9是这样的: INVA0,INVA1,INVA2,INVA3,...INVA9 注意我们如何INVALID每次都从单词中删除字母。 您将不断重复此操作,直到到达单个字母,即字母I: I0,I1,I2,I3,I4...I9 现在,您的任务是,像上例一样,输入一个单词,并从中产生一个序列。您的代码还必须使用单个字母,在这种情况下,结果序列将更短。 您可以选择自己喜欢的任何输入和输出格式(根据需要选择带或不带分隔符),但是必须指定选择的格式。 顺序必须严格按照指定的顺序进行。 成功完成此挑战的最短代码(以字节为单位)将赢得挑战。 上例中的完整序列: INVALID0, INVALID1, INVALID2, INVALID3, INVALID4, INVALID5, INVALID6, INVALID7, INVALID8, INVALID9, INVALI0, INVALI1, INVALI2, INVALI3, INVALI4, INVALI5, INVALI6, INVALI7, INVALI8, INVALI9, INVAL0, INVAL1, INVAL2, INVAL3, INVAL4, INVAL5, INVAL6, INVAL7, INVAL8, INVAL9, INVA0, INVA1, …

18
最短排序的Hello World
编写一个无需输入即可打印Hello, World!到stdout或您的语言最接近的替代程序的程序。值得注意的是,程序中的每一行只能包含可打印的ASCII字符,并且必须按字典顺序(也就是排序)排序。 以下是按顺序排列的所有95个可打印ASCII字符: !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 因此,例如,该行将!!A0~无效,因为A和0顺序混乱。该行将!!0A~有效。 程序中的每一行可以是任意长度,并且可以有任意数量的行。空行被认为是已排序的。程序中的每个换行符都必须相同(不能混合使用\n和\r\n)。禁止使用制表符和其他不可打印的ASCII字符。 由于需求旺盛,获胜条件已改变: 最少行的提交获胜。Tiebreaker进入最短的程序(换行符视为单个字符)。 仅Hello, World!和可选的尾随换行符应输出。请注意,HQ9 +无效,因为它输出hello, world。我可能会禁止使用类似于HQ9 +的具有一个字符“ Hello,World!”的语言。命令的琐碎性。 暗示: 这是绝对有可能在一元和Lenguage,虽然不是很简明。

8
你好,世界!没有重复
在询问此问题之前存在的任何编程语言中,编写一个程序(而不是函数),该程序输出字符Hello world!后跟换行符。您的程序: 最多只能使用一个字符(包括空格) 应该只使用ASCII字符 不应使用任何内置库 不应获取输入(用户,文件,文件名,系统变量,互联网等) 不应该输出其他任何东西 获胜者是14天后拥有最多票数并遵守六项规则的人。 第六条规则是您不能使用H9 +,HQ9 +,HQ9 + B,HQ9 ++,HQ9 + 2D,Hello,Hello +,Hello ++,Hexish,CHIQRSX9 +或赋格曲。另外,所有要求比该挑战都要新的实现的答案都必须标记为非竞争。 免责声明:发布此问题的前提是Hello world!提出有限的重复步骤不会对您的计算机或大脑造成任何损害。

2
最快的迷你手枪奎宁
迷你Flak是的一个子集脑高射炮语言,其中<>,<...>和[]操作是不允许的。严格来说,它不能与以下正则表达式匹配: .*(<|>|\[]) Mini-Flak是Brain-Flak的最小已知图灵完整子集。 不久前,我能够用Mini-Flak制作Quine,但是它太慢了,无法在宇宙的生命周期中运行。 因此,我对您的挑战是使Quine更快。 计分 要对代码评分,请在代码@cy末尾添加一个标志,然后使用该标志在Ruby解释器中运行(使用ruby解释器在线尝试)-d。您的分数应打印到STDERR,如下所示: @cy <score> 这是程序终止之前所经过的周期数,两次运行之间相同。由于每个周期的运行时间大致相同,因此您的分数应与运行程序所需的时间直接相关。 如果Quine太长而无法在计算机上合理运行,则可以手动计算周期数。 计算周期数不是很困难。循环数等于运行的单子数加运行的nilad数的2倍。这与用一个字符替换每个nilad并计算总共运行的字符数相同。 评分示例 (()()()) 得分为5,因为它有1个单子和3个尼拉德。 (()()()){({}[()])} 得分为29,因为第一部分与以前相同,得分为5,而循环包含6个单子和2个得分为8的尼拉德。循环运行3次,因此我们计算其得分为3次。 1*5 + 3*8 = 29 要求 您的程序必须... 至少2个字节 在Brain-Flak中使用-A标志执行时打印其源代码 不匹配正则表达式 .*(<|>|\[]) 提示 该起重机高射炮解释是断然比Ruby解释器快,但缺少一些功能。我建议您先使用Crane-Flak测试您的代码,然后在您知道它可以工作时在ruby解释器中对其评分。我也强烈建议不要在TIO中运行您的程序。TIO不仅比台式机解释器慢,而且还会在大约一分钟后超时。如果有人在TIO超时之前设法获得足够低的分数来运行他们的程序,那将是非常令人印象深刻的。 [(...)]{}且(...)[{}]工作与<...>但不违反受限源要求 如果您想了解如何应对这一挑战,可以查看Brain-Flak和Mini-Flak Quines。

2
口红“ quine”
任务 以单个Unicode字符作为输入。 以也符合该规范的相同语言输出程序,但不包含输入字符。 如果你的程序与输入运行一个,然后输出程序,然后用输入运行b,程序就输出被允许的包含字符一个。但是,仍然不允许b出现在该程序中。换句话说,仅禁止输入程序的最新版本。 无论标题怎么说,都适用标准的奎因规则。 最短的程序获胜。程序必须至少一个字节长。 例 如果程序是ABCD。(#是注释) > slangi "ABCD" A EBCD # "FBCD" "JGGJ" "UGDKJGDJK" are all OK > slangi "EBCD" C ABGD # "EBGD" "UIHDAIUTD" are all OK > slangi "ABGD" B AFCD > slangi "AFCD" Z ABCD slangi虚拟语言的口译员在哪里。

11
Dyalog APL官方2016年比赛
如果您认为这可能很有趣,但是工作量过多,请考虑参加这个小得多的挑战。 2016年有点有趣(可能还有挫败感!)…… Dyalog的“年度难题”。请享用! 目标 查找Dyalog APL(下载)表达式(允许使用其他语言,请参见下面的“ 资格”),该表达式精确地包含数字2 0 1 6,该数字等于0到100。例如: 20=16 ×2016 2⌊016 2+0+1*6 ... 目的是在每个表达式中使用尽可能少的字符(一个表达式的最小字符数为5 –四位数字2 0 1 6和一个原始函数/运算符)。 规则 每个表达式必须包含数字2 0 1 6(按该顺序),并且不能包含其他数字。预设的常量和变量也不允许。 除了四位数2 0 1 6以外,只能使用内置符号和名称,括号/大括号,空格,高减号和小数点。结果表达式必须是确定性的(即,在重复求值时得出相同的结果)。对于非APL,也可以使用带有名称的功能/操作符;和这里一样的规则。 假定您的语言的所有默认设置。对于Dyalog APL,这意味着⎕ML和⎕IO均为1,并且⎕PP为10。 包括从0到100在内的所有数字的正确表达式的每个条目都将根据这些表达式所使用的字符数(不包括多余空格)(所有101个表达式的最小值505)进行评级。 合格 任何人都可以进入。您可以用任何语言回答,但只有APL回答会被考虑接受。如果您使用APL以外的其他语言,则可以使用代码片段,程序,函数等代替表达式,并且可以打印,将数字保留在可访问的内存位置,或者以其他方式返回结果,只要直接编写代码即可计算为所需的数字,作为您语言的任何标准数值数据类型。 截止日期 2016年11月30日。 奖品 接受您的答案 在Dyalog的2016年名人堂中永生不朽! 提交您的输入 2016年11月30日之后,我将接受最短的答案,并以您的名义将您的答案提交给Dyalog的2016年名人堂。 常问问题 是否允许J(例如37 = ⌈⍟!20J16)? 否:除了四位数字2 0 1 6之外,只能使用内置符号和名称,括号/大括号,空格,高减号和小数点。 输出为字符串可以接受吗? …

12
打印黄金分割率
真有趣!但是,只有三位数,乐趣还为时过早。这个挑战是相似的,但我们会继续保持乐趣。 挑战 尽可能多地打印黄金比例 φ的数字。黄金比率定义为满足φ=(φ+ 1)/φ的数字,并且前100位数字由下式给出: 1.6180339887498948482045868343656381177203091798057628621354486227052604628189024497072072041893911375 ... 这个挑战不是关于计算φ!这是关于尽可能多地打印数字,而无需使用任何方法进行两次打印。因此,请找到尽可能多的创造性方法来获取数字! 限制条件 就其本身而言,打印φ的数字有点太简单了,因此规则如下: 您必须按从左到右的顺序构造数字,方法是逐段打印,也可以从左至右构造一个字符串,最后打印它-您甚至可以生成一个数字字符数组,然后将其连接起来并打印它,只要您按顺序进行即可。在以下规则中,“打印”和“输出”可能是指那些过程中的任何一个(例如,如果您正在构建字符串,并且该字符串包含已被1.6视为1.6已打印的字符串)。 对于您的代码,每位预算为15个字符。该期间不计入该预算,但也必须打印出来。请注意,该限制仅针对总代码大小:您可以对任何数字使用超过15个字符,只要您平均不使用更多字符即可。实际上,您可能会在字符中累积一个“债务”,并在以后“偿还”。例如,要打印,1.618您有60个字符。 标准库包含/导入不计入代码大小。但是您不能免费给这些包含速记别名的东西! 您不得使用当前正在生成的数字,也不得使用任何已打印的数字。例如1,在源代码中可能没有出现,因为它是第一位。输出8in 的代码1.618可以使用任何或所有数字[0234579],但不使用任何数字[168]。为此,将所有等同于单个数字的文字视为该数字。因此,如果您的语言可以表示9,'\t'那么您将不能在任何地方使用该语言,9而不能使用它。 您不能一次产生多个数字。应该有可能将您的代码清楚地分成几块,一次生成一个数字。 您不得引用在生成较早数字的代码中使用的任何内置函数,数学/布尔值/按位/字符串运算符,变量或常量。整数到字符串的转换,字符串连接和打印功能可能是例外,您可能需要为每个数字输入。请注意,您使用哪个名称来指代任何内置都没关系:仅仅因为您PI为两者都内置了别名p,q并不意味着您可以p一次使用q一次。同样,如果名称引用了两个不同的内置名称(例如string 和array),则允许您使用两次名称。lengthlength 如果您的编程语言没有函数,请根据其最佳判断(例如bash脚本编写),调用其他程序应遵循对函数施加的规则 您的提交必须以单一语言编写。因此,也无需执行另一种语言的解释程序来访问该语言的内置程序。 含义 上述规则隐含了以下几点,但我在此处添加它们是为了避免沙箱中已经出现的问题: 您不能通过'\b'在两者之间打印一些退格键(通常是)来覆盖部分输出。 禁止产生/输出多个数字的循环。(不过,计算一位数字的循环就可以了。) (1 + √5)/2禁止使用混淆版本或将斐波那契数除以获取多个位数。 您无法预先计算10位数字并将它们存储在10个变量中,然后再引用它们,因为那些变量引用不会生成数字-填充变量的代码会生成数字,因此这违反了规则6。 实际上,您不能重复使用任何先前的(或中间结果),因为这将意味着两位数字将共享要生成的代码。 否则,您可以使用任何方式(不必完全是数学方法)来生成数字。(你应该!) 实际上,如果您可以使用标准库从许多不同的地方提取正确的数字,则无需进行任何计算。 在生成一个数字时,您可能会多次使用运算符,因此生成第一个数字2+2+2很公平6(尽管这不太可能是最短的)。 您可以随意使用任何文字,因为它们不是内置常量。因此,只要不必打印5,您就可以5在您的代码中随意添加。 您无法对输出进行硬编码,因为这将涉及使用要输出的数字。 简而言之:请勿使用任何方法来两次生成数字,也不要使用您当前正在输出或已经打印的数字。 如果您确实发现了漏洞,可以得到(准)无限的分数,请不要通过利用漏洞来破坏挑战,但请告诉我,我可以看看漏洞是否可以解决而不会破坏任何东西。 计分 正确打印最高位数的程序将获胜。如果是平局,则较短的代码会打破平局。 请添加未注释的注释版本,以标识代码的哪个部分生成哪个数字。 PS:如果有人击败了上面的100位数字,这里还有更多。

25
检测完美配对
让我们有一个函数,它接收一个字符串并删除所有成对的相邻相同字符。例如fff f(abbbacc)=abaf(abbbacc)=abaf(a\color{red}{bb}ba\color{red}{cc}) = aba 请注意,当两对重叠时,我们只会移除其中一对。 如果重复应用最终产生空字符串,我们将调用完美配对的字符串。例如,上面的字符串不是完美配对的,因为如果再次应用,我们仍然会得到。然而,像这样的字符串是完美配对的,因为如果我们应用三次,我们将得到空字符串abbbaccabbbaccabbbaccfffabaabaabaeabbccaddeeabbccaddeeabbccaddefff f(eabbccadde)=eaaef(eabbccadde)=eaaef(ea\color{red}{bbcc}a\color{red}{dd}e) = eaae f(eaae)=eef(eaae)=eef(e\color{red}{aa}e) = ee f(ee)=f(ee)=f(\color{red}{ee}) = 您的任务是编写完美配对的计算机代码,该代码采用一个字符串(可打印ASCII),并确定其是否完全配对。源的字节串本身必须是完美配对的字符串,尽管您的代码不必一定限于可打印的ASCII。 您可以输出两个不同的值:一个用于输入完美配对的情况,另一个用于不配对的情况。 这是一个代码问题,因此答案将按其来源的字节大小进行评分,而字节越少越好。 测试用例 abbbacc→Falseabcba→Falseabab→Falseabbbaabacc→Trueeabbccadde→Truebbbb→Trueabbbacc→Falseabcba→Falseabab→Falseabbbaabacc→Trueeabbccadde→Truebbbb→Trueabbbacc \rightarrow \mathrm{False}\\ abcba \rightarrow \mathrm{False}\\ abab \rightarrow \mathrm{False}\\ abbbaabacc \rightarrow \mathrm{True}\\ eabbccadde \rightarrow \mathrm{True}\\ bbbb \rightarrow \mathrm{True}

30
回答链斐波那契
(灵感来自ASCII的95个字符... 95电影行情) 挑战 给定输入n,输出nth 斐波那契数。您可以使用0或1建立索引,请在您的提交中注明。很简单,是吗?要注意的是,您必须采用上一个答案的字符集,从中删除两个字符,然后添加一个单独的字符。单独的字符必须 不是来自前一个答案的字符集 来自(可打印的ASCII,空格,换行符,水平制表符)的集合 因而你总字符集的大小将正好一个比前一个上回答的更小的集合。 最初的答案 第一个提交必须包含一个子集(所有可打印的ASCII,空格,换行符和水平制表符),并且删除了两个字符。此后的每个提交都必须将其答案限制为这种原始的纯ASCII格式(这意味着您不能添加Unicode或扩展ASCII字符……很抱歉,APL等人,Jelly)。 实例和说明 假设第一个答案在C中,并且包含(几乎所有可打印的ASCII,换行符和水平制表符),并从其字符集中省略%和^。然后,第二个提交必须从上一个字符集(几乎所有可打印的ASCII,换行符和水平制表符)中删除两个字符,并添加%或^。也许这是一个单行的PowerShell答案,而忽略了换行符。等等。 如果上一个答案print(){}!*+的字符集为12个字符,则您提交的内容可能有print(){}!10个字符和一个附加字符,print(){!+10个字符和一个附加字符,依此类推。 如果以前的答案有print(){}!*+其字符集(12个字符),提交的内容可能不具有print()和&(8个字符)作为它的字符集,因为12 - 8 > 1。 如果以前的答案有print(){}!*+其字符集(12个字符),提交的内容可能不会有print(){}!(10个字符),再加上额外的字符*作为其字符集,因为即使那是11个字符,则*包括在上一组。 并非您的字符集中的每个字符都必须对提交内容有所帮助。例如,如果先前的答案print(){}!*+以其字符集为准,并且您的语言具有内置功能,!可以计算斐波那契数列并#启动注释,则您的提交可能!#print(){}仍然有效。 您可以多次使用字符集中的同一字符。例如,假设您的字符集为!*#_,您的答案可能是!!!**#**#_!!并且将是可接受的。 除了您的代码(并且解释也不错!)之外,还请明确列出您的字符集,以使以后的提交更加容易。 获奖 挑战的获胜者将是发布第二个最新提交的人(即不是最后发布的人,因为他们打破了链条)。 最终规则 通常的答案链规则适用: 同一个人不能连续发布两次 如果一个答案被认为是无效的(例如,它使用了禁止字符或计算不正确),则需要将其删除(以及所有后续的答案也都将其链接) 张贴“同时”的两个用户将不得不保留较早的提交 同一语言不能连续发布两次。为了该规则的目的,相同家族的语言(例如,Python 2和Python 3)被视为“相同语言”。 最后的事情: 如果按“最旧的”排序,则此帖子效果最佳,以便正确排列答案。 Kyle Gullion在这里用Python构造了一个代码检查器,以验证您是否丢失或使用错误的字符。

11
计算pi的500位数字
编写一个程序来计算pi的前500位,并满足以下规则: 长度必须少于500个字符。 它不能包含“ pi”,“ math.pi”或类似的pi常量,也不能调用库函数来计算pi。 它可能不会连续使用数字“ 3”,“ 1”和“ 4”。 它必须在合理的时间内(不到1分钟)在现代计算机上执行。 最短的程序获胜。

18
在不带分号的C ++中打印1到1000
遵循这个受欢迎的问题,提出您的解决方案,该解决方案无需使用任何分号就可以在C ++中打印数字1到1000(所有字符,而不是字符串“ 1到1000”或任何有趣的东西)。与原始问题不同,您可以使用条件和循环。 不需要任何编译器标志的解决方案是首选。如果违反此规定,请提及您使用的任何内容。允许未定义的行为,因此请指定您使用的编译器和版本。将优先考虑聪明的解决方案。这不是最短的代码竞赛。 (我有一个解决方案,如果在此之前没有发布类似的解决方案,我会在24小时内发布。)

3
你好世界-但按字母顺序
这个挑战听起来太简单了,根本不存在,所以让我知道它是否重复。 任务 打印 Hello, world! 规则 您的代码必须为“字节顺序”。这意味着每个字符/字节都比前一个字符/字节具有更高或相等的字节值。 该规则的例外是空格字符,该字符可能出现在任何地方。 在通常的漏洞是不允许的。 编辑:Hello, world!不允许使用内置函数/常量解析。 编辑2:输出可能是返回字符串的(n个匿名)函数,解析为字符串的表达式或您认为应该允许的任何其他方式。 例 HW有效:0x48 (H) <= 0x57 (W) print无效:0x72 (r) > 0x69 (i) 但PRint有效:0x50 (P) <= 0x52 (R) <= 0x69 (i) <= 0x6e (n) <= 0x74 (t) 得分 这是代码高尔夫球,因此得分是字符/字节数。分数越低,排名越高。

16
运行合并冲突
当使用git之类的工具合并两个文件时,可能会检测到冲突并将其添加到合并结果中。 这两个文件的合并: 我的档案: Common line of code 1 Common line of code 2 my lines Common line of code 3 Common line of code 4 他们的档案: Common line of code 1 Common line of code 2 their lines Common line of code 3 Common line of code 4 会导致: Common …

12
补猫
目的编写一个完整的程序,输出(到STDOUT或最接近的替代品)任意长度不超过64个字符的文本字符串。很简单吧?好了,这很重要:您不能使用上一个答案的输出中存在的任何字符。是的,没有一个。 因此,您正在尝试成为总共三天的最后答案。也就是说,您不希望在发布问题后的72小时内回答该问题。 一些规则 您的答案(和输出)只能包含可打印的ASCII字符,换行符(包括回车符)和制表符。 您答案的输出可能与另一个答案的输出不同。当且仅当它们使用完全相同的字符时,两个输出才是相同的。 您可以使用不是专门针对此挑战而设计的任何语言,即使它是在挑战之后做出的。(当然,这种语言必须是可测试的。) 您不得使用以前使用的任何语言。 您的输入内容可能不包含评论。您当然可以提供额外的评论程序。 您 可能不会连续回答两次。 您的程序必须至少为1个字节。 输入格式 您的答案通常应如下所示: # {Language} Uses: `characters present in the output` Does not use: `characters used in the previous output` from [previous submission, language](link-to-previous-submission] {program} Outputs: {output} 谢谢您提供答案的解释。

24
最短Minmod函数
该minmod功能是熟悉的一种变型分钟,出现在偏微分方程斜率限制性高分辨率方案。给定许多坡度,它会选择最平坦的坡度,同时注意坡度之间的相对符号。 该函数接受任意数量的参数。然后将minmod(x 1,x 2,...,x n)定义为: min(x 1,x 2,...,x n),如果所有x i都严格为正 max(x 1,x 2,...,x n),如果所有x i均为负 0,否则。 我们将仅考虑整数输入,因为这实际上不会影响实现,并且对于某些(深奥)语言应具有更大的包容性。 编写程序或函数,该程序或函数通过STDIN,ARGV或函数参数(如果要比可变参数函数更方便,则可以使用数组)接收n个有符号整数(对于n> 0),然后返回或打印(到STDOUT)结果的minmod(a,b)。 您一定不能使用内置的min或max函数(显然,如果可以实际找到的话,也没有内置的minmod)。此外,除对固定的少量项目(少于5个)进行分类外,不得使用任何内置的分类功能。 如果您的语言没有带符号的类型,则可以使用无符号的类型并将其解释为二进制补码。例如,如果您的语言仅使用无符号字节,则可以使用255代表-1和128代表-128,等等。 这是代码高尔夫球,因此最短的答案(以字节为单位)获胜。 测试用例 Input Output 2 2 -3 -3 0 0 3 -5 0 2 4 1 1 0 1 2 0 -1 1 2 0 -4 -2 -3 -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.