Questions tagged «logic-gates»

挑战包括使用逻辑门作为编码语言或输出逻辑门。

30
用2个输入和1个输出打高尔夫球所有16个逻辑门!
例如,该门A and B是具有2个输入和1个输出的逻辑门。 正好有16个,因为: 每个逻辑门有两个输入,可以为真或假,为我们提供4个可能的输入 在这4种可能的输入中,每一种都可以有一个真实和错误的输出 因此,有2 ^ 4个可能的逻辑门,即16。 您的任务是编写16个程序/功能,分别实现它们。 您的功能/程序必须独立。 只要它们输出true / falsey值,它们就有效,这意味着即使为和生成,您也可以A or B在Python中实现。lambda a,b:a+b2A=TrueB=True 分数是用于每个功能/程序的总字节数。 逻辑门列表 0,0,0,0(false) 0,0,0,1(and) 0,0,1,0(A and not B) 0,0,1,1(A) 0,1,0,0(not A and B) 0,1,0,1(B) 0,1,1,0(xor) 0,1,1,1(or) 1,0,0,0(nor) 1,0,0,1(xnor) 1,0,1,0(not B) 1,0,1,1(B implies A) 1,1,0,0(not A) 1,1,0,1(A implies B) 1,1,1,0(nand) 1,1,1,1(true) 其中第一个数字是的输出A=false, B=false,第二个数字是的输出A=false, B=true,第三个数字是的输出A=true, …

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。如果您愿意检查的话,这当然适用于其他三个两位输入。 …

1
多米诺电路
计分板 这是VisualMelon提交的原始分数(即多米诺骨牌数)。当有更多答案出现时,我将把它们变成下面描述的归一化分数。现有解决方案现在可以解决基准测试中的所有电路: Author Circuit: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- VisualMelon 39 45 75 61 307 …

19
教会布尔
布尔布尔教堂 一堂布尔是一个函数,返回x为真,y假其中x是第一个参数的功能,y是第二个参数的功能。这些功能可以构成其他功能,这些功能代表and not or xor和implies逻辑操作。 挑战 构建教堂和布尔and not or xor和implies教堂大门在你选择的语言。and or并且xor应接受两个函数(代表教堂布尔值)并返回一个函数(代表另一个教堂布尔值)。同样,not应该反转它需要的功能,并且implies门应该执行布尔值隐含逻辑,其中第一个参数implies第二个。 计分 制作教堂所需的所有代码的总长度,true以及false使用您的语言and not or xor以及implies教堂和教堂大门所需要的代码,不包括功能名称。(例如,false=lambda x,y:y在Python中为13个字节)。您可以稍后在代码中重用这些名称,使它们的计数占该门的总字节数为1个字节。 伪代码示例: 您创建的函数应该可以稍后在您的代码中这样调用。 true(x, y) -> x false(x, y) -> y and(true, true)(x, y) -> x and(true, false)(x, y) -> y # ... etc

6
基于网格的数字逻辑(Duodyadic Tiles)
Duodyadic磁贴是正方形功能块的一种,具有两个输入,一个从顶部输入,一个从左侧输入,并具有两个输出,一个在右侧,一个在底部。它们的每个输出都是其两个输入的单独功能。 例如,如果#表示一个通用的瓦片,右输出R是函数f的输入T和L,底部输出B是另一个函数g的T和L: T L#R R = f(T, L) B B = g(T, L) (由于有两个函数,所以这些图块被称为“ duo”,而由于两个函数都有两个参数,它们被称为“ dyadic” 。) 然后,可以在网格上将图块组合在一起,一个图块的输出直接进入与其相邻的图块的输入。例如,在这里,左侧的右侧输出#进入右侧的左侧输入#: AB D = f(f(A, C), B) C##D E = g(A, C) EF F = g(f(A, C), B) 您可以想象,如果给定一组Duodyadic磁贴,每个磁贴都具有特定的功能,则可以制作复杂(且可能有用)的合成。 在这个挑战中,我们将只关注传统的十组基于逻辑的双性平铺,其中所有输入和输出都是单位二进制数(零或一)。我们将使用单独的ASCII字符来表示每种类型的图块。 是瓷砖字符和它们的输入-输出关系,如下所示: (T为顶部输入,L为左输入,R用于右输出,B为底部输出。) 零:0或(空格)→ R = 0,B = 0 一:1→ R = 1,B = …

28
做一个简单的自动包装
(注意:这是我有史以来第一个关于高尔夫的代码问题,但是据我所知,没有人能完全做到这一点,所以我应该很好。) 您的任务是制作一个程序或函数,该程序或函数接受一个字符串s和一个整数n,并返回或输出包装成多行的文本。每个单词必须全部在一行上;即中间没有字。每行的n字符长度不能超过字符,并且每行中必须包含尽可能多的单词。 例: s = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed eget erat lectus. Morbi mi mi, fringilla sed suscipit ullamcorper, tristique at mauris. Morbi non commodo nibh. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Sed at iaculis mauris. Praesent a …
22 code-golf  string  code-golf  string  parsing  apl  math  primes  integer  fastest-code  code-golf  math  primes  integer  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  array-manipulation  code-golf  number  code-golf  sequence  code-golf  math  arithmetic  code-golf  date  conversion  code-golf  geometry  combinatorics  grid  code-golf  string  code-golf  counting  java  code-golf  chess  code-golf  path-finding  conversion  atomic-code-golf  logic-gates  code-golf  fibonacci  code-golf  ascii-art  fractal  code-golf  quine  code-golf  string  code-golf  array-manipulation  decision-problem  code-golf  quine  code-golf  code-challenge  array-manipulation  code-challenge  word-search  code-golf  binary  conversion  code-golf  code-golf  restricted-source  code-golf  kolmogorov-complexity  restricted-source  code-golf  kolmogorov-complexity  random  animation 

24
ogl-edocf挑战
输入项 一个非空的字符串,由范围内的ASCII字符组成。[ 32..126 ][32..126][32..126] 输出量 通过对输入字符串进行连续旋转来获得输出。 对于[a-zA-Z]输入字符串中的每个字母(),从左到右: 如果字母是大写字母,请将其前面的所有字符向左旋转一个位置 如果字母是小写字母,请将其前面的所有字符向右旋转一个位置 例 输入:“ Cb-Ad” 第一个字母是“ C ”。我们应该向左旋转,但是这个“ C ” 之前没有字符。因此,没有任何旋转。 下一个字母是“ b ”。我们向右旋转“ C ”。因为它是单个字符,所以它保持不变。 字符“ - ”不会触发任何旋转,因为它不是字母。 下一个字母是“ A ”。我们轮流“ CB- ”到左边,这给“ 公元前广告” 第四个也是最后一个字母是“ d ”。我们向右旋转“ b-CA ”,即为“ Ab-C d” 因此,预期输出为“ Ab-Cd ”。 规则 您可以将输入作为字符串或字符数组进行输入-根据您的语言,输入内容可能相同也可能不同。 您也可以输出字符数组而不是字符串。 这是ogl-edocf 代码高尔夫 测试用例 "cbad" -> …
22 code-golf  string  code-golf  string  code-golf  string  parsing  brainfuck  code-challenge  python  hello-world  error-message  code-golf  string  code-golf  number  integer  counting  subsequence  code-golf  string  cipher  code-golf  array-manipulation  arithmetic  integer  matrix  code-golf  math  sequence  code-golf  restricted-source  pi  popularity-contest  cops-and-robbers  polyglot  popularity-contest  cops-and-robbers  polyglot  code-golf  file-system  king-of-the-hill  code-golf  number  sequence  integer  rational-numbers  string  code-challenge  source-layout  code-golf  ascii-art  king-of-the-hill  code-golf  array-manipulation  sorting  code-golf  string  code-golf  restricted-source  source-layout  tips  math  code-challenge  permutations  logic-gates  code-golf  number  random  integer  code-golf  math  code-golf  math  number  decision-problem  king-of-the-hill  python  board-game  code-challenge  brainfuck  busy-beaver  code-golf  number  cops-and-robbers  polyglot  obfuscation  answer-chaining  code-golf  number  integer  conversion  code-golf  string  parsing  code-golf  ascii-art  number  king-of-the-hill  javascript  code-golf  source-layout  radiation-hardening  code-golf  array-manipulation  matrix  code-golf  string  graph-theory  code-golf  array-manipulation  decision-problem  code-golf  string  ascii-art  code-golf  string  code-golf  array-manipulation 

2
使用NAND逻辑门构建乘法器
基于我之前相同类型的问题,使用NAND逻辑门构建加法器,这一次要求您乘以而不是加。 建立的(双线)NAND逻辑门的图,将采取的输入线A1,A2,A4,B1,B2,B4,代表两个二进制数A来B对输出线从0到7,并返回值C1,C2,C4,C8,C16,和C32,表示C,这是产品A和B。 您的分数取决于您使用的与非门的数量(每个门1分)。为简化起见,您可以在图表中使用AND,OR,NOT和XOR门,并具有以下相应的分数: NOT: 1 AND: 2 OR: 3 XOR: 4 这些分数中的每一个都对应于构建相应门所需要的NAND门数量。 最低分获胜。

15
g o l f a t 2
有时将笛卡尔坐标转换(x,y)为极坐标确实很费力(r,phi)。虽然你可以计算r = sqrt(x^2+y^2)很容易,你经常计算时的角度需要的情况下有些区别phi,因为arcsin,arccos以及arctan和所有其他三角函数有一个共同域,每个只有跨越半个圆。 在许多语言中,都有用于将直角坐标转换为极坐标的内置atan2函数,或者至少具有给定的(x,y)计算角度的函数phi。 任务 你的任务是写一个程序/功能采用两个(浮点,但不能同时为零)笛卡尔坐标(x,y),并输出对应的极角phi,其中phi必须处于度,弧度或等级(与等级余平均gradians其是1 /整圆的400),以您较方便的为准。 角度是在正方向上测量的,对于,我们有零角度(1,0)。 细节 您不得使用内置插件是计算角度phi给出两个坐标,其中包括atan2,rect2polar,argOfComplexNumber和类似的功能。但是,您可以使用通常的三角函数及其反函数,它们只需一个参数。任何单位符号都是可选的。 半径r必须为非负数,并且phi必须在范围内[-360°, 360°](无论输出270°还是,都无关紧要-90°)。 例子 Input Output (1,1) 45° (0,3) 90° (-1,1) 135° (-5,0) 180° (-2,-2) 225° (0,-1.5) 270° (4,-5) 308.66°
18 code-golf  math  geometry  trigonometry  code-golf  number-theory  fibonacci  code-golf  math  sequence  fibonacci  code-golf  string  code-golf  math  graphical-output  geometry  code-golf  string  code-golf  math  geometry  code-golf  math  bitwise  number  popularity-contest  graphical-output  image-processing  fractal  code-golf  number-theory  code-golf  date  multi-threading  code-golf  math  code-golf  math  number  sequence  code-golf  math  number  sequence  arithmetic  code-golf  decision-problem  logic-gates  code-golf  decision-problem  balanced-string  code-golf  math  arithmetic  combinatorics  code-golf  expression-building  code-golf  physics  code-golf  abstract-algebra  code-golf  number  arithmetic  integer  code-golf  ascii-art  number  code-golf  number-theory  primes  code-golf  arithmetic  grid  code-golf  code-golf  sequence  code-golf  kolmogorov-complexity  compression  code-golf  math  number  arithmetic  array-manipulation  code-golf  primes  hexagonal-grid  complex-numbers  code-golf  number  counting  code-golf  math  number  arithmetic 

2
给定一个真值表,输出一个满足它的Stackylogic程序
Stackylogic是我在上一个挑战中提出的一种编程语言:运行Stackylogic。请阅读该帖子以获取完整的详细信息和示例,但是下面解释了它的工作方式: Stackylogic采用0和1来输入和输出单个0 或1完成时。 程序由仅包含字符01?以及其中一行<的末尾恰好包含一个字符的行组成。行不能为空,并与该行<必须至少有一个0,1或 ?之前。 这是一个示例程序,用于计算两位的NAND: 1 ?< 11 ? 0 程序中的每一行都被视为一个堆栈,其底部在左侧,顶部在右侧。隐式地,在程序的第一行之前和最后一行之后有一个空栈(即空行)。 在<运行程序时,称为光标,标记堆栈开始。执行过程如下: 将顶部字符从光标当前指向的堆栈中弹出。 如果该字符为?,则提示用户输入a 0或a,1并像该字符一样进行操作。 如果字符是0,则将光标向上移动一个堆栈(到当前行上方的行)。 如果字符是1,则将光标向下移动一个堆栈(到当前行下方的行)。 如果光标移动到的堆栈为空,则输出从堆栈弹出的最后一个值(始终为a 0或1),然后结束程序。 否则,如果光标移动到的堆栈不为空,请返回步骤1并重复该过程。 应对这一挑战的关键是,所有Stackylogic程序都等同于一个真值表。输入一些预定数量的布尔值,并确定性地输出一个布尔值。 因此,您的任务是生成一个满足或模拟的Stackylogic程序,即与任何给定的真值表具有相同的输出。但是Stackylogic 可以模拟任何真值表并不明显,因此这是归纳法的证明: 基本情况 两个0输入真值表是始终输出0或 的表1。这些表的Stackylogic等效项 分别为0<和1<。 归纳步 假设Stackylogic可以模拟任何N输入的真值表。令M = N + 1。 M输入表T可以表示为两个N输入表T 0和T 1以及附加输入位B。当B为0时,使用T 0的结果。当B为1时,将使用T 1的结果。 例如,对应于伪代码的3输入真值表 if B: result = x OR y else: result = …

2
逻辑门的格里曼德
多数函数是一个布尔函数,它接受三个布尔输入并返回最常用的。例如,如果maj(x,y,z)是多数功能并T表示true和Ffalse,则: maj(T,T,T) = T maj(T,T,F) = T maj(T,F,F) = F maj(F,F,F) = F 这个问题涉及将布尔函数编写为多数函数的组合。多数函数的5元组成的示例是(x1,x2,x3,x4,x5) => maj(x1,x2,maj(x3,x4,x5))。此函数在这些样本输入向量上返回以下输出: (T,T,F,F,F) => maj(T,T,maj(F,F,F)) = maj(T,T,F) = T (T,F,T,T,F) => maj(T,F,maj(T,T,F)) = maj(T,F,T) = T (T,F,T,F,F) => maj(T,F,maj(T,F,F)) = maj(T,F,F) = F (F,F,F,T,T) => maj(F,F,maj(F,T,T)) = maj(F,F,T) = F 任务 编写一个程序,该程序输入一个正整数n和一个长度为n的布尔向量列表,并输出一个多数门树,如果可能,则在所有给定向量上返回true。该函数可能会在约束列表之外的向量上返回true或false。 向量列表可以按您喜欢的任何格式输入。如果愿意,可以输入向量中真实位置的列表,而不输入向量。因此,例如[TTF,TFT,FTT]or [[T,T,F],[T,F,T],[F,T,T]]或[[1,2],[1,3],[2,3]](真实职位列表)都很好。 输出可以是任何有效的树格式。例如,maj(maj(x1,x2,x3),x4,x5)作品。您可能想要使用单个数字作为变量的替代品,如中所述[[1,2,3],4,5]。例如,反向抛光123m45m也可以。 如果没有起作用的函数,则您的程序应生成错误或输出错误值。 …

20
分解一个数字!
您的任务是使用以下格式分解数字。 这与基本转换类似,不同之处在于digits,您列出了values,而不是在基本列表中列出,这样列表就加到了输入上。 如果给定的基为n,则列表中的每个数字都必须采用的形式k*(n**m),其中0<=k<n和m在整个列表中都是唯一的。 眼镜 任何合理的输入/输出格式。您的程序/功能需要2个输入并输出一个列表。 输出列表可以是任何顺序。 0 可以排除或包含。 0允许领导。 允许内置。 测试用例 number base converted list input1 input2 output 123456 10 [100000,20000,3000,400,50,6] or [6,50,400,3000,20000,100000] 11 2 [8,2,1] or [0,0,0,0,8,0,2,1] 727 20 [400,320,7] 101 10 [100,1] or [100,0,1] 计分 这是代码高尔夫球。以字节为单位的最短解决方案获胜。
16 code-golf  number  sequence  number-theory  base-conversion  code-golf  bitwise  hashing  code-golf  string  ascii-art  whitespace  code-golf  math  code-golf  code-golf  image-processing  counting  code-golf  math  arithmetic  checksum  code-golf  code-golf  math  arithmetic  number-theory  code-golf  array-manipulation  random  code-golf  string  code-golf  math  ascii-art  base-conversion  code-golf  graphical-output  geometry  3d  code-golf  math  linear-algebra  matrix  code-golf  math  number  sequence  code-golf  array-manipulation  code-golf  math  matrix  linear-algebra  code-golf  number  sequence  counting  code-golf  string  code-golf  string  restricted-source  quine  sorting  code-golf  string  geometry  code-golf  string  code-golf  networking  code-golf  base-conversion  code-golf  math  matrix  code-golf  arithmetic  linear-algebra  matrix  code-golf  number  arithmetic  grid  code-golf  number  source-layout  code-golf  string  bitwise  checksum  code-golf  array-manipulation  code-golf  string  probability-theory  code-golf  tips  code-golf  sequence  code-golf  string  math  sequence  calculus  code-golf  string  palindrome  bioinformatics  code-golf  math  combinatorics  counting  permutations  code-golf  parsing  logic-gates  code-golf  arithmetic  number-theory  combinatorics  code-golf  math  sequence  polynomials  integer  code-golf  string  ascii-art  chess  code-golf  string  code-golf  number  code-golf  string  ascii-art  parsing  code-golf  code-golf  number  natural-language  conversion  code-golf  arithmetic  code-golf  string  code-golf  ascii-art  decision-problem 

5
用小于运算符表示所有16个布尔函数
对于两个二进制变量A和B,有16个不同的布尔函数: A B | F0 | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | F13 | F14 | F15 ----------------------------------------------------------------------------------------- 0 0 | 0 | 0 | 0 | 0 | 0 | 0 …

1
使用NAND逻辑门构建微型浮点加法器
甲minifloat是具有非常少的比特的浮点数的二进制表示。 此问题中的最小浮点数将定义为6位数字m,其具有以下表示形式: 1位代表数字的符号。此位将是0如果数字为正,1如果该数字为负。 3位代表数字的指数,偏移量为3(即的指数110实际上代表2 3的因数,而不是2 6的因数)。 指数是000指次正规数。尾数是整数的小数部分0乘以最低可能指数(在这种情况下为2 -2)的系数。 2位代表数字的尾数。如果指数不是000或111,则2位代表a之后的小数部分1。 的指数111表示infinity尾数是否为0,NaN否则为(不是数字)。 在Wikipedia文章中,这将被称为(1.3.2.3)minifloat。 此微型浮点数表示的一些示例: 000000 = 0.00 = 0 000110 = 1.10 × 2^(1-3) = 0.375 001100 = 1.00 × 2^(3-3) = 1 011001 = 1.01 × 2^(6-3) = 10 011100 = infinity 011101 = NaN 100000 = -0.00 = -0 100011 …

2
密集包装的十进制(DPD)至十进制,带有逻辑门
受到nandgame最近在TNB上的普及以及我以前的挑战的启发。 背景 密集包装的十进制(DPD)是一种以二进制有效存储十进制数字的方法。它以10位存储三位十进制数字(000至999),这比朴素的BCD(以4位存储一位数字)的效率要高得多。 换算表 DPD旨在通过简单的从上到下的模式匹配在位和数字之间轻松转换。每个位模式定义数字有多少个高数字(8-9),它们在哪里以及如何移动这些位以形成小数表示。 以下是从DPD的10位到三位十进制数字的转换表。每个十进制数字都表示为4位二进制(BCD)。双方都从最高位到最低位从左到右书写。 Bits => Decimal (Digit range) a b c d e f 0 g h i => 0abc 0def 0ghi (0-7) (0-7) (0-7) a b c d e f 1 0 0 i => 0abc 0def 100i (0–7) (0–7) (8–9) a b c g h …

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.