タグ付けされた質問 「logic-gates」

コーディング言語としてロジックゲートを使用するか、ロジックゲートを出力することを含む課題。

30
2つの入力と1つの出力を備えた16個の論理ゲートすべてをゴルフしましょう!
たとえば、ゲートA and Bは2つの入力と1つの出力を持つ論理ゲートです。 以下の理由により、正確に16個あります。 各論理ゲートは2つの入力を受け取ります。これらの入力は、真実または偽であり、4つの可能な入力を提供します 4つの可能な入力のうち、それぞれが真実と偽の出力を持つことができます したがって、2 ^ 4の可能性のある論理ゲートがあり、16です。 あなたの仕事は、それらすべてを個別に実装する16のプログラム/関数を書くことです。 機能/プログラムは独立している必要があります。 これらは、true / falsey値を出力する限り有効です。つまり、およびで生成されたA or Bとしてlambda a,b:a+bも、Pythonでとして実装できます。2A=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あり、2番目がの出力でA=false, B=trueあり、3番目がの出力でA=true, …

11
Stackylogicを実行する
Stackylogicは、私がそのテイクアップ作られたロジックベースのプログラミング言語である0のと1、入力用のを単一出力0または1上に完了したことを。 Stackylogicプログラムは、3文字01?だけでなく<、1行の最後に1 文字だけを含むことができる行で構成されます。行は空ではないかもしれないとして行が<少なくとも一つ持っている必要があります0、1または?それ以前に。 これは(説明しますが)2ビットのNANDを計算するサンプルプログラムです。 1 ?< 11 ? 0 Stackylogicプログラムのすべての行はスタックと見なされ、下が左、上が右になります。暗黙的に、プログラムの最初の行の前と最後の行の後に空のスタック(空の行)があります。 <我々は呼んでよこれ、カーソルを Stackylogicプログラムが実行されたときに起動するマークスタック。Stackylogicプログラムの実行は次のように進行します。 カーソルが現在指しているスタックから一番上の文字をポップします。 キャラクターがの場合、?ユーザーに0またはのプロンプトを表示し、それがキャラクターであるかのよう1に振る舞います。 文字がの場合、0カーソルを1スタック上に(現在の行の上の行に)移動します。 文字がの場合、1カーソルを1スタック下に(現在の行の下の行に)移動します。 カーソルの移動先のスタックが空の場合、スタックからポップされた最後の値(常にa 0または1)を出力し、プログラムを終了します。 それ以外の場合、カーソルの移動先のスタックが空でない場合は、手順1に戻ってプロセスを繰り返します。 Stackylogicプログラムは常にスタックを使い果たすため、常に終了することに注意してください。 NANDの例 NANDプログラムでは、カーソルは次の位置から始まります?。 1 ?< 11 ? 0 私たちは、入力、ユーザーを仮定します1一度?カーソルがこのようなプログラムを見て作り、下に移動することを意味している、ポップされます。 1 11< ? 0 これ1で、カーソルスタックの最上部にプレーンが表示されます。適切にポップされ、カーソルが再び移動します。 1 1 ?< 0 今、ユーザ入力仮定0のための?カーソルが上に移動することを意味し、: 1 1< 0 再び、a 1がカーソルスタック上にあるため、カーソルがポップして下に移動します。 1 < 0 最後に、カーソルスタックは空なので、最後にポップされた値が1出力され、プログラムが終了します。 であるため、これはNANDゲートに対して正確1 NAND 0です1。もちろん、これは他の3つの2ビット入力でも確認できます。 …

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
教会ブール
教会のブール値 A 教会ブールは戻って、その関数でx真のためにとy偽のためには、どこxの関数の最初の引数で、y関数の第二引数です。さらに機能が表現これらの関数から構成することができるand not or xorとimpliesの論理演算を。 チャレンジ 教会のブール値および構築and not or xorやimpliesお好みの言語で教会の門を。and orそしてxor、2つの関数(Churchブール値を表す)を取り、関数(別のChurchブール値を表す)を返す必要があります。同様に、notそれがとる関数を反転し、impliesゲートがブール値を実行する必要があります。impliesが2番目の。 得点 教会を作成するために必要なすべてのコードの全長、trueおよびfalseあなたの言語and not or xorとimplies教会の門は、機能の名前を除きます。(たとえば、false=lambda x,y:yPythonでは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タイルは、2つの入力(1つは上面から、もう1つは左側から)、2つの出力(1つは右側に、もう1つは下面)を備えた正方形の機能ブロックです。それぞれの出力は、両方の入力の個別の関数です。 たとえば、#一般的なタイルを表し、右の出力がR機能でf入力のTとL、下の出力はB別の関数であるgのTとL: T L#R R = f(T, L) B B = g(T, L) (2つの関数があるため、タイルは「du​​o」と呼ばれ、両方の関数には2つの引数があるため「dyadic」と呼ばれます。) タイルは、グリッド上で一緒に構成することができ、1つのタイルの出力は、隣接するタイルの入力に直接入ります。ここで、例えば、左の右の出力は右#の左の入力に入ります#: AB D = f(f(A, C), B) C##D E = g(A, C) EF F = g(f(A, C), B) それぞれが特定の機能を備えたデュオディアックタイルのセットがあれば、複雑な(潜在的に有用な)コンポジションを作成できると想像できます。 この課題では、すべての入力と出力が1ビットのバイナリ数(ゼロまたは1)である、10個のロジックベースのデュオディアディックタイルの従来のセットのみを考慮します。タイルの各タイプを示すために、個別のASCII文字を使用します。 タイル文字とそれらの入出力関係は次のとおりです (T上入力L用、左入力R用、右出力B用、下出力用)。 ゼロ:0または(スペース)→ R = 0、B = 0 1つ:1→ R = 1、B = 1 クロス:+→ R …

28
シンプルなワードラッパーを作成する
(注:これは私の初めてのコードゴルフの質問ですが、私が知る限り、誰もこれを正確に行っていないので、私は良いはずです。) あなたの仕事は、文字列sと整数を取り込んで、n複数の行に折り返されたテキストを返すか出力するプログラムまたは関数を作成することです。各単語は完全に1行である必要があります。つまり、途中で単語が分割されません。各行は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]入力文字列の各文字()について、左から右へ: 文字が大文字の場合、その前のすべての文字を左に1ポジションだけ回転します 文字が小文字の場合、その前のすべての文字を1つ右に回転します 例 入力:「Cb-Ad」 最初の文字は「C」です。左に回転する必要がありますが、この「C」の前に文字はありません。したがって、回転するものは何もありません。 次の文字は「b」です。「C」を右に回転します。単一の文字であるため、変更されません。 文字「-」は文字ではないため、回転をトリガーしません。 次の文字は「A」です。「Cb-」を左に回転すると、「bC Ad」が得られます 4番目の最後の文字は「d」です。「b-CA」を右に回転させると、「Ab-C d」が得られます したがって、予想される出力は「Ab-Cd」です。 ルール 入力は、文字列または文字の配列として受け取ることができます。これは、言語に応じて、同じである場合とそうでない場合があります。 文字列の代わりに文字の配列を出力することもできます。 これはogl-edocf code-golfです テストケース "cbad" -> "abcd" "ACBD" -> "ABCD" "Cb-Ad" -> "Ab-Cd" "caeBDF" -> "aBcDeF" "aEcbDF" -> "abcDEF" "ogl-edocf" -> "code-golf" "W o,ollelrHd!" -> "Hello, World!" "ti HIs …
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、2つの2進数表現AのB出力配線に0から7まで、および戻り値をC1、C2、C4、C8、C16、とC32表しますC、これの産物であるAとB。 スコアは、使用するNANDゲートの数(ゲートごとに1ポイント)によって決まります。物事を簡単にするために、ダイアグラムでAND、OR、NOT、XORゲートを使用し、以下の対応するスコアを使用できます。 NOT: 1 AND: 2 OR: 3 XOR: 4 これらの各スコアは、対応するゲートを構築するために必要なNANDゲートの数に対応しています。 最低スコアが勝ちます。

15
g l f a t a n 2
時には、デカルト座標(x,y)を極座標に変換するのは本当に大変です(r,phi)。r = sqrt(x^2+y^2)非常に簡単に計算できますが、角度を計算する際にケースの区別が必要になることがよくあります。phiこれarcsinはarccos、arctanおよび他のすべての三角関数が、それぞれが円の半分のみに広がる共領域を持つためです。 多くの言語には、直交座標を極座標に変換するための組み込みatan2機能があります。または、少なくとも(x,y)角度を計算する関数がありますphi。 仕事 あなたのタスクは、2つ(浮動小数点、両方ではないゼロ)デカルト座標を取るプログラム/関数を記述することで(x,y)、対応する極角出力するphi、phiと(度、ラジアン、またはグレードでなければならないグレード Iは、平均グラジアン 1であります/ 400の完全な円)、あなたにとってより便利な方。 角度は正の方向で測定され、の角度はゼロです(1,0)。 詳細 あなたは、角度計算ビルトインを使用することはできませんphiを含む2点の座標、与えられたatan2、rect2polar、argOfComplexNumberおよび同様の機能を。ただし、通常の三角関数とその逆関数を使用できます。これらの関数は1つの引数のみを取ります。単位記号はオプションです。 半径は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?だけでなく、正確に一つとして<ラインの1の終わりに。行は空ではないかもしれないとして行が<少なくとも一つ持っている必要があります0、1または ?それ以前に。 2ビットのNANDを計算するサンプルプログラムを次に示します。 1 ?< 11 ? 0 プログラム内のすべての行はスタックと見なされ、左が下、右が上になります。暗黙的に、プログラムの最初の行の前と最後の行の後に空のスタック(つまり空の行)があります。 <プログラムが実行されたときに、カーソルと呼ばれ、マークスタックは上を開始します。実行は次のように進行します。 カーソルが現在指しているスタックから先頭の文字をポップします。 文字がの場合、?ユーザーにa 0またはa を要求し、それが文字であるかのよう1に動作します。 文字がの場合、0カーソルを1スタック上に(現在の行の上の行に)移動します。 文字がの場合、1カーソルを1スタック下に(現在の行の下の行に)移動します。 カーソルの移動先のスタックが空の場合、スタックからポップされた最後の値(常にa 0または1)を出力し、プログラムを終了します。 それ以外の場合、カーソルの移動先のスタックが空でない場合は、手順1に戻ってプロセスを繰り返します。 この課題を実現するために重要なことは、すべてのStackylogicプログラムが真理値表と同等であることです。所定の数のブール値が入力され、正確に1つのブール値が確定的に出力されます。 したがって、あなたのタスクは、満たすかシミュレートするStackylogicプログラムを作成することです。つまり、与えられた真理値表と同じ出力を持ちます。しかし、Stackylogic が任意の真理値表をシミュレートできることは明らかではないため、ここに帰納法による証明があります。 規範事例 2つの0入力の真理値表は、常に0またはを 出力する表です1。これらのテーブルに相当するStackylogicは0<、1< それぞれです。 誘導ステップ Stackylogicが任意のN入力真理値表をシミュレートできると仮定します。M = N + 1とします。 M入力テーブルTは、2つのN入力テーブルT 0およびT 1に追加の入力ビットBを加えて表現できます。Bが0の場合、T 0の結果が使用されます。Bが1の場合、T 1の結果が使用されます。 たとえば、擬似コードに対応する3入力の真理値表 if B: result = x OR y else: result …

2
論理ゲートでのゲリマンダーリング
多数決関数は、3つのブール入力を取り、最も一般的な値を返すブール関数です。たとえば、if maj(x,y,z)が多数決関数であり、TtrueをF示し、false を示す場合: 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]](真の位置のリスト)はすべて問題ありません。 …

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] 得点 これはcode-golfです。バイト単位の最短ソリューションが優先されます。
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 


1
NAND論理ゲートを使用してミニフロート追加マシンを構築する
minifloatは、非常に少数のビットを有する浮動小数点数のバイナリ表現です。 この質問のミニフロートmは、次の表現を持つ6ビットの数値として定義されます。 数値の符号を表す1ビット。このビットは0、数値が正の1場合、および数値が負の場合になります。 オフセットした数値の指数を表す3ビット3(つまり、110実際の指数は2 6ではなく2 3の係数を表します)。 の指数は000、非正規数を指します。仮数と0は、可能な限り最小の指数のファクター(この場合は2 -2)を乗算した整数部分を持つ数値の小数部分を指します。 数値の仮数を表す2ビット。指数がまたは以外の000場合111、2ビットはaの後の小数部を表し1ます。 の指数は、仮数がである場合を111表しinfinity、それ以外の場合は(数値ではない)を表します。0NaN ウィキペディアの記事では、これは(1.3.2.3)ミニフロートと呼ばれます。 このミニフロートの表現の例: 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
密集10進数(DPD)から10進数へ、論理ゲート付き
TNB でのnandgameの最近の人気と、私自身の以前の挑戦に触発されました。 バックグラウンド 密パック10進数(DPD)は、10進数を2進数で効率的に格納する方法です。10ビットで3桁の10進数(000〜999)を保存します。これは、ナイーブBCD(4ビットで1桁を保存)よりもはるかに効率的です。 変換表 DPDは、上から下への単純なパターンマッチングにより、ビットと数字の間を簡単に変換するように設計されています。各ビットパターンは、数値の上位桁(8〜9)の数、位置、ビットを移動して10進数表現を形成する方法を定義します。 以下は、DPDの10ビットから3桁の10進数への変換表です。各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 …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.