Questions tagged «logic»

对于与数学逻辑和布尔代数有关的挑战。

30
数学是事实。编程不是
在数学中,感叹号!通常表示阶乘,并且在论点之后出现。 在编程中,感叹号!通常表示取反,它位于参数之前。 对于这一挑战,我们仅将这些运算应用于零和一。 Factorial 0! = 1 1! = 1 Negation !0 = 1 !1 = 0 取一个零或多个字符串!,然后是0或1,然后是零个或多个字符串!(/!*[01]!*/)。 例如,输入可以是!!!0!!!!或!!!1或!0!!或0!或1。 在!的之前的0或者1是否定和!年代后的阶乘。 阶乘的优先级比否定的优先级高,因此总是优先应用阶乘。 例如,!!!0!!!!确实意味着!!!(0!!!!),或者更好!(!(!((((0!)!)!)!)))。 输出所有阶乘和否定的结果应用。输出将始终为0或1。 测试用例 0 -> 0 1 -> 1 0! -> 1 1! -> 1 !0 -> 1 !1 -> 0 !0! -> 0 !1! -> 0 0!! -> …

30
计算尾随真相
受我亲爱的朋友和同事的启发,并为之缅怀, Dan Baronet,1956年-2016年。RIP 他为该任务找到了最短的APL解决方案: 任务 给定一个布尔列表,计算尾随真值的数量。 案例案例 {} → 0 {0} → 0 {1} → 1 {0, 1, 1, 0, 0} → 0 {1, 1, 1, 0, 1} → 1 {1, 1, 0, 1, 1} → 2 {0, 0, 1, 1, 1} → 3 {1, 1, 1, 1, 1, 1} …

12
亚历克斯有时候是对的
这个挑战是要唤起我们通常是错误的 mod A. Alex A.的精神。 假设您有一个名为Alex的朋友,他需要有关基本逻辑和数学(特别是数学等效性)的帮助。 他为您提供了以下形式的方程式列表,[variable] = [variable]其中a [variable]始终是单个大写字母A到Z(不是小写字母,数字,也没有其他内容)。列表中每行只有一个方程,只说了一行therefore。 上面的所有方程式therefore都是前提,假设事实成立。下面的所有等式therefore都是未经验证的命题,这是Alex试图从前提推论得出的事实,它们可能是正确的也可能不是正确的。 例如,在此等式列表中,单个结论命题A = C恰好是正确的: A = B B = C therefore A = C 告诉亚历克斯,如果他的所有命题在逻辑上都遵循给定前提,这是您的工作。也就是说,您需要在结论中告诉Alex他是对还是错。 编写一个程序/函数,该程序/函数接受所描述的一系列方程式的字符串并打印/返回 Alex is right 如果所有结论都从前提逻辑上得出,否则输出 Alex is wrong 如果在逻辑上没有从前提得出任何结论。 以字节为单位的最短代码获胜。 确保注意以下情况: 变量始终等于自己。例如 B = A therefore A = A X = X 结果Alex is right。 …
50 code-golf  math  logic 

30
成为第一个(仅留下第一个Truthy)
介绍 每年,Dyalog有限公司都会举办一次学生比赛。面临的挑战是编写好的 APL代码。这是今年第八个问题的与语言无关的高尔夫版本。 我得到比赛原作者的明确许可,可以在此处发布此挑战。跟随提供的链接并与作者联系,以进行验证。 问题 给定布尔值列表,“关闭”第一个Truthy之后的所有Truthies。 没有真相吗?没问题!只需返回未修改的列表即可。 例子 [falsy,truthy,falsy,truthy,falsy,falsy,truthy] → [falsy,truthy,falsy,falsy,falsy,falsy,falsy] [] → [] [falsy,falsy,falsy,falsy] → [falsy,falsy,falsy,falsy] *您的所有真相必须相同,而您的所有虚假也必须相同。这包括输出。

11
运行Stackylogic
Stackylogic是一种基于逻辑的编程语言我提出了称取在0的和1为输入的,并输出一个单一的0或1在完成。 Stackylogic程序由只能包含三个字符的行组成,并且只能在01?其中一行<的末尾包含一个字符。行不能为空,并与该行<必须至少有一个0,1或?之前。 这是一个示例程序(如我将解释的那样),计算两个位的NAND: 1 ?< 11 ? 0 Stackylogic程序中的每一行都被视为一个堆栈,其底部在左侧,顶部在右侧。隐式地,在程序的第一行之前和最后一行之后有一个空堆栈(空行)。 的<,我们称之为的光标,标记堆栈的运行Stackylogic程序时开始。Stackylogic程序的执行过程如下: 将顶部字符从光标当前指向的堆栈中弹出。 如果该字符为?,则提示用户输入a 0或a,1并像该字符一样进行操作。 如果字符是0,则将光标向上移动一个堆栈(到当前行上方的行)。 如果字符是1,则将光标向下移动一个堆栈(到当前行下方的行)。 如果光标移动到的堆栈为空,则输出从堆栈弹出的最后一个值(始终为a 0或1),然后结束程序。 否则,如果光标移动到的堆栈不为空,请返回步骤1并重复该过程。 请注意,Stackylogic程序始终会结束,因为它们最终必须耗尽堆栈。 NAND范例 在NAND程序中,光标从以下位置开始?: 1 ?< 11 ? 0 我们假设用户1一旦输入,便输入a ?,这意味着光标将向下移动,使程序如下所示: 1 11< ? 0 现在,平原1位于游标堆栈的顶部。它会适当弹出,然后光标再次移动: 1 1 ?< 0 现在假设用户输入0的?,这意味着将光标向上移动: 1 1< 0 同样,1游标堆栈上还有a ,因此游标弹出并向下移动: 1 < 0 最后,游标堆栈为空,因此弹出最后一个值1,输出,程序结束。 这是准确的NAND门,因为1 NAND 0是1。如果您愿意检查的话,这当然适用于其他三个两位输入。 …

4
猪会飞吗?
任务 您的任务是用您选择的语言编写函数或程序,该函数或程序分析几个语句并确定是否可以从这些语句中得出猪可以飞的结论。 输入项 输入是一个字符串,可以从STDIN读取,可以作为函数参数,甚至可以存储在文件中。可以使用以下EBNF描述输入: input = statement , {statement}; statement = (("Pigs are ", attribute) | ("Everything that is ", attribute, "is also ", attribute)), ". "; attribute = [not], ("able to fly" | singleAttribute); singleAttribute = letter, {letter}; letter = "a" | "b" | "c" | "d" | "e" …

3
(A→B)→(¬B→¬A)
好吧,我认为现在是时候了,我们还有另一个证明高尔夫的问题。 这次我们将证明众所周知的逻辑真相 (甲→ 乙)→ (¬ 乙→ ¬ 甲)(A→B)→(¬B→¬A)(A \rightarrow B) \rightarrow (\neg B \rightarrow \neg A) 为此,我们将使用Łukasiewicz的第三个公理架构,这是一个由三个公理组成的极其优雅的集合,它们在命题逻辑上都是完整的。 下面是它的工作原理: 公理 Łukasiewicz系统具有三个公理。他们是: ϕ → (ψ → ϕ )ϕ→(ψ→ϕ)\phi\rightarrow(\psi\rightarrow\phi) (ϕ → (ψ → χ ))→ ((ϕ → ψ )→ (ϕ → χ ))(ϕ→(ψ→χ))→((ϕ→ψ)→(ϕ→χ))(\phi\rightarrow(\psi\rightarrow\chi))\rightarrow((\phi\rightarrow\psi)\rightarrow(\phi\rightarrow\chi)) (¬ φ → ¬ ψ )→ (ψ → φ )(¬ϕ→¬ψ)→(ψ→ϕ)(\neg\phi\rightarrow\neg\psi)\rightarrow(\psi\rightarrow\phi) …
38 logic  proof-golf 

18
自动进行一年级的计数练习
CodeGolf挑战 PWSSHHHH!您在3000年的一个低温实验室中醒来。在押送至任务分配办公室以接收您的职业筹码(大概是送货员的职业筹码)后,探针会检测到您来自2000年。刻板印象,与当今的现代人相比,你被认为是愚蠢的,被迫重读小学。 您进入一年级教室,老师正在做作业。她会说或写一个不超过50的数字。如果她在黑板上写下该数字(例如:25),那么您必须说不超过该数字的数字“ 1、2、3,...,25 ”。如果她大声说出数字(例如:“六个”),则必须在平板电脑上将数字写成最大为“ 1、2、3、4、5、6” 这变得非常乏味,您决定使用仍在运行的21世纪原始编程知识来自动化该过程。 目的: 您的程序应该接受输入。该输入将是十进制数字(1 thru 50)或写出数字(one thru fifty)。 •如果输入为十进制数字,则您的输出应使用写出样式从一到该数字进行计数。(例如32个) •如果输入是写出的数字,则您的输出应使用小数形式从1计数到该数字。(例如32) 规则: 输入和输出可以在您选择的任何情况下使用(因此,如果需要,您可以制作一个仅接受大写字母的程序)。 输入的十进制数字不必是数字类型(例如int),它们可以是包含数字的输入字符串(25对“ 25”)。两种都很好,您可以选择要让程序接受的一种。(您的程序无需同时接受两者) 书面样式不需要复合词之间的连字符,但是如果需要,可以。 输出值必须以某种形式分隔,任何分隔符都可以 1,2,3 1 2 3 etc 您不能添加额外的库,例如num2words(python)等(但是系统库也可以) 即使背景故事说您来自2000年,您也可以使用在该日期之后创建的语言(lol) 这是代码高尔夫球,因此字节数最短的程序将获胜!

26
数字总和斐波那契
我们都熟悉斐波那契数列: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765 但是,相反,f(n) = f(n-1) + f(n-2)我们将对前2个条目进行数字求和。 序列应仍以开头0, 1,之后差异会迅速显现。此列表的索引为0,也可以使用索引为1的状态。 f(0) = 0 f(1) = 1 f(2) = 1 # 0 + 1 f(3) = 2 # 1 + 1 f(4) …

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 

3
证明我是错的!
介绍 您的人生使命很简单:在互联网上证明人们做错了! 为此,您通常会仔细分析他们的陈述并指出他们之间的矛盾。 现在该使它自动化了,但是由于我们很懒惰,所以我们希望以最小的努力(最短代码)证明人们是错误的。 规格 输入项 您的输入将是合取范式的公式。对于格式,可以根据您的语言需要使用以下格式或定义自己的格式(不过,您可以使用的格式编码不能超过纯CNF)。但是,测试用例(此处)以以下格式提供(尽管生成您自己的用例并不难)。 您的输入将是一个变量列表的列表(您也可以将其读为字符串/需要字符串)。输入是合取范式(CNF)的公式,写为一组子句,每个子句都是两个列表的列表。子句中的第一个列表对正文字(变量)进行编码,第二个列表对负(负)文字(变量)进行编码。子句中的每个变量都进行“或”运算,所有子句都进行“与”运算。 更清楚地说:[[[A,B],[C]],[[C,A],[B]],[[B],[A]]]可以理解为: (A OR B OR (NOT C)) AND (C OR A OR (NOT B)) AND (B OR (NOT A)) 输出量 输出为布尔值,例如某个真实值或一些虚假值。 该怎么办? 很简单:检查手头给出的公式是否可以满足要求,例如,是否对所有变量都分配了true和false,以便整个公式得出“ true”。如果公式可满足要求,则输出将为“ true”,否则为“ false”。 事实:在一般情况下,这是一个NP完全问题。 注意:允许生成真值表并检查结果是否为真。 角落案例 如果您得到一个空的3级列表,则该子句中没有这样的(正/负)变量-有效输入。 如果需要,可以保留其他不确定的情况。 您也可以在公式为空(一级列表)时返回true,在子句为空(二级列表)时返回false。 谁赢? 这是代码高尔夫球,因此最短的答案以字节为单位! 标准规则当然适用。 测试用例 [[[P],[Q,R]],[[Q,R],[P]],[[Q],[P,R]]] -> true [[[],[P]],[[S],[]],[[R],[P]],[[U],[Q]],[[X],[R]],[[Q],[S]],[[],[P,U]],[[W],[Q,U]]] -> true …
22 code-golf  math  logic 

2
存在高尔夫
数学有很多符号。有些人可能会说太多符号。因此,让我们对图片进行一些数学运算。 让我们来一张纸,我们将以此为基础。首先,本文为空,我们将说等同于或。⊤⊤\top真正真正\textit{true} 如果我们在纸上写其他东西,它们也将是正确的。 例如 表示声明和是正确的。PPP问问Q 现在让我们说,如果我们围绕某个陈述画一个圆圈,则该陈述是错误的。这代表逻辑不。 例如: 表示为假,为真。PPP问问Q 我们甚至可以将圆圈放在多个子语句周围: 由于圆内的部分通常在圆上加上一个圆,因此读作,因此表示。我们甚至可以嵌套圈子P 和 QP 和 问P\text{ and }Q不 (P 和 Q )不 (P 和 问)\text{not }(P\text{ and }Q) 读为。不是 ((不是 P) 和 Q )不 ((不 P) 和 问)\text{not }((\text{not }P)\text{ and }Q) 如果我们绘制一个没有任何内容的圆,则表示 或。 ⊥⊥\bot假假\textit{false} 由于空白为真,因此对否定为假。 现在,使用这种简单的可视方法,我们实际上可以表示命题逻辑中的任何陈述。 证明 能够表示语句之后的下一步就是能够证明它们。对于证明,我们有4种不同的规则可用于变换图形。我们总是从一张空纸开始,我们知道这是一个虚无的事实,然后使用这些不同的规则将空纸转换为一个定理。 我们的第一个推理规则是插入。 插入 我们将子图与顶层之间的否定数称为“深度”。插入允许我们以奇怪的深度介绍我们希望的任何语句。 …
22 math  logic  proof-golf 

3
当生活给你柠檬时,做柠檬水
挑战 您将得到一个输入字符串,任何地方的话"Lemon"是发现它应转换到"Lemonade" ,但是在a,d和e在句子中必须借用了别的地方。 例 输入示例: 我小时候发现一个柠檬 示例输出: 我小时候就喝柠檬水 该柠檬水是由从原来的偷下标字母创建 我foun d柠檬水WH é ñ我是一个孩子 这只是一个可能的输出示例,“ e”,“ d”和“ a”可以从任何地方获取(当然单词除外lemon) 评论 •如果,或s 不足e,则必须输出给定字母可进行的操作。例如,输入将输出adbdblemonbblemond • lemon文本可能并不总是独立的(两边都有空格)。例如,您可能lemons在输入中的某处有单词,而输出应为lemonades •输入可以包含任意数量的lemons,甚至0 lemons(在这种情况下,输出将与输入相同) •您可以用大写和小写字母来制作您的柠檬水,例如leMon可以变成leMonade,而ade借用可以是任意大小写(因此也可以变成leMonADe)。您借用的信件的大小写必须保持与借用时相同。(示例输入->输出,he hAD lemOn-> h h lemOnADe) •不必是一个完整的程序,仅一个功能就可以。 •您可以假设输入仅是CP437字符集 高尔夫代码 这是代码高尔夫球,因此赢得最少的字节数! 伪测试案例 *注意:对于任何给定的输入,可能会有多个可能的输出,因此您的程序可能无法完全按照这些测试用例的方式输出,这仅仅是为了使人们可以理解逻辑: 输入:EpaD leMons 输出:p LeMonaDEs 输入:hello world 输出:hello world 输入:柠檬柠檬 输出:柠檬柠檬 *(本e,a,d字母不应该从另一个“柠檬”拍摄) 输入:HE HAD柠檬水 输出:HH …
21 code-golf  string  code-golf  parsing  internet  stack-exchange-api  code-challenge  kolmogorov-complexity  restricted-source  brain-flak  python  logic  pyth  code-golf  string  search  optimized-output  code-golf  tips  language-design  golfing-language  code-golf  tips  language-design  code-golf  number  sorting  pi  code-golf  math  number  code-golf  string  balanced-string  classification  brain-flak  code-golf  math  number-theory  decision-problem  code-golf  tips  code-golf  number  sequence  code-golf  balanced-string  brain-flak  code-golf  math  sequence  arithmetic  fibonacci  code-golf  math  parsing  code-golf  string  keyboard  code-golf  code-golf  string  source-layout  whitespace  code-golf  math  rational-numbers  code-golf  string  code-golf  string  code-golf  math  sequence  code-golf  number  floating-point  code-golf  string  decision-problem  subsequence  code-golf  string  kolmogorov-complexity  code-golf  string  permutations  balanced-string  brain-flak  code-golf  string  math  number  code-golf  string  primes  cipher  code-golf  string  ascii-art  chemistry  code-golf  ascii-art  grid  counting  code-golf  math  arithmetic  integer  code-golf  number  kolmogorov-complexity  code-golf  ascii-art  kolmogorov-complexity  sequence  metagolf  brain-flak  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  whitespace 

3
证明摩根定律
利用自然演绎系统的十个推论证明了德摩根定律。 自然演绎法则 否定介绍: {(P → Q), (P → ¬Q)} ⊢ ¬P 消除否定: {(¬P → Q), (¬P → ¬Q)} ⊢ P 并介绍: {P, Q} ⊢ P ʌ Q 和消除: P ʌ Q ⊢ {P, Q} 或简介: P ⊢ {(P ∨ Q),(Q ∨ P)} 或消除: {(P ∨ Q), (P → R), (Q …

30
用给定的宽度绘制空心的#
我从Codingame那里获得了这一挑战,并且对比我的更好的解决方案感到好奇: 通过标准输入给定宽度,在给定的宽度和长度上绘制一个空心的#号正方形。 例: 5结果 ##### # # # # # # ##### 我用python解决了这个问题,所以我对其他python代码特别感兴趣。但是,请随时以所需的任何语言发布您的解决方案。
21 code-golf  string  ascii-art  number  code-golf  grid  code-golf  string  ascii-art  code-golf  alphabet  cipher  code-golf  math  number  code-golf  quine  code-golf  palindrome  polyglot  code-golf  number  array-manipulation  counting  logic  code-golf  string  primes  binary  decision-problem  code-golf  ascii-art  kolmogorov-complexity  popularity-contest  code-golf  probability-theory  code-golf  string  code-golf  python  polyglot  programming-puzzle  c++  code-golf  math  code-golf  binary  integer  bitwise  code-golf  rational-numbers  code-golf  string  palindrome  code-golf  ascii-art  code-golf  code-golf  string  fibonacci  code-golf  math  sequence  code-golf  code-golf  string  palindrome  code-golf  string  code-golf  math  primes  source-layout  code-golf  sequence  binary  integer  code-golf  math  arithmetic  game  code-golf  restricted-source  palindrome  code-golf  restricted-source  palindrome  code-golf  combinatorics  binary  code-golf  string  math  code-golf  ascii-art  number  code-golf  cipher  code-golf  base-conversion  counting  code-golf  sequence  random  classification  code-golf  string  subsequence  code-golf  permutations  code-golf  string  code-golf  string  cipher  code-golf  kolmogorov-complexity  arithmetic  integer  code-golf  quine  markov-chain  code-golf  string  code-golf  code-golf  ascii-art  maze 

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.