タグ付けされた質問 「atomic-code-golf」

アトミックコードゴルフは、定義した言語の特定のフラグメントでの操作の数によってスコア付けされます。

16
整数が3で割り切れるかどうかを判別
目標は、条件を使用せずに数値が3で割り切れるかどうかを判断することです。入力は、0から255までの符号なし8ビット数になります。 使用のみ許可されています 平等/不平等(==、!=、>、<、>=、<=) 算術演算(+、-、x) 論理演算子(!not、&&and、|| or) ビット演算子(~しない、&及び、|又は、^XOR、 、、<< 算術および論理左右シフト)>>>>> 定数(これらを小さくした方が良いでしょう) 変数の割り当て 0falseの1場合、trueの場合に出力します。 標準のアトミックコードゴルフ規則が適用されます。ご質問がある場合は、コメントに残してください。ここにメソッドの例。トークンは、定数と変数を除く上記のいずれかです。

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ゲートの数に対応しています。 最低スコアが勝ちます。

19
三角法プログラムを有効にする
Triangularityは、Xcoder氏によって開発された新しいエソランであり、コード構造は非常に具体的なパターンに従う必要があります。 nコードのth行について2n-1は、プログラムの正確な文字がその上になければなりません。これにより、最初の行は1文字のみで、残りは2ずつ増加する三角形/ピラミッドの形状になります。 各行の.左右にsを埋め込み、文字が行の中央に配置され、すべての行が同じ長さで埋め込まれるようにする必要があります。lがプログラムの行数として定義されている場合、プログラムの各行の長さは2 * l - 1 たとえば、左側のプログラムは有効ですが、右側のプログラムは無効です。 Valid | Invalid | ...A... | ABCDE ..BCD.. | FGH .EFGHI. | IJKLMN JKLMNOP | OPQRS 有効な構造にレイアウトすると、名前が明らかになります。 仕事 あなたの仕事は、三角コードを表す単一行の文字列を入力として受け取り、それを上記のように有効なコードに変換して出力することです。 I / Oの仕様: 入力には、範囲内の文字のみが含まれます 0x20 - 0x7e 入力の長さは常に二乗数であるため、うまくパディング可能です。 出力パディングには、他のものではなくドットを使用する必要があります。 受け入れ可能な任意の方法で入力および出力できます。これはコードゴルフなので、バイト単位の最短コードが勝ちです! テストケース input ---- output g ---- g PcSa ---- .P. cSa DfJ0vCq7G ---- …
19 code-golf  string  code-golf  combinatorics  code-golf  math  number  code-golf  matrix  code-golf  string  decision-problem  code-golf  internet  code-golf  number  number-theory  integer  expression-building  code-challenge  primes  cops-and-robbers  obfuscation  code-challenge  primes  cops-and-robbers  obfuscation  code-golf  string  balanced-string  code-golf  quine  code-generation  code-golf  matrix  code-golf  tips  c#  code-golf  ascii-art  code-golf  ascii-art  source-layout  code-golf  quine  source-layout  popularity-contest  language-design  code-golf  array-manipulation  subsequence  code-golf  matrix  math  code-challenge  game  graph-theory  atomic-code-golf  code-golf  number  integer  polynomials  equation  code-golf  array-manipulation  sorting 

5
ハードオブジェクトまたはソフトオブジェクトはもっとありますか
What-Ifブックのオープニングに触発されました。 入力は、文字列、文字列のリストなどとしてのスペースの長方形で、#内部にで作成されたオブジェクトがあります。 ######## # # ######## ### #### ### #### ### オブジェクトは常に交差せず、触れない長方形になります。ソフトオブジェクトは#、中央がで埋められておらず、境界のみであるオブジェクトとして定義されます。ハードオブジェクトは、塗りつぶされたオブジェクトです。幅または高さのあるオブジェクト<=2はハードと見なされます。すべてのオブジェクトはハードまたはソフトです。 入力にさらに硬いオブジェクトがある"Hard"場合、output 、より柔らかい場合、output "Soft"、それらが等しい場合、output "Equal"。 これはcode-golfなので、バイト単位の最短コードが勝ちです! テストケース これらのケースは完全な入力ではなく、各オブジェクトを特徴付けるべきものです。実際の入力は、質問の上部にあるascii-artのようになります。 ハード # #### ## ## ########## ########## ########## 柔らかい ### # # ### ################### # # # # # # ################### #### # # # # # # # # # …
19 code-golf  ascii-art  counting  code-golf  number  grid  decision-problem  chess  code-golf  grid  graph-theory  chess  code-golf  math  geometry  code-golf  arithmetic  roman-numerals  fastest-code  code-golf  math  geometry  code-golf  string  cryptography  code-golf  number  sequence  decision-problem  code-golf  string  parsing  c  code-golf  sorting  integer  code-golf  number  sequence  rational-numbers  graphical-output  atomic-code-golf  assembly  box-256  code-golf  geometry  tips  python  code-golf  number  sequence  arithmetic  number-theory  code-golf  ascii-art  kolmogorov-complexity  geometry  code-golf  graphical-output  code-golf  math  code-golf  grid  cellular-automata  game-of-life  code-golf  string  subsequence  code-golf  arithmetic  rational-numbers  code-golf  tips  dc  code-golf  ascii-art  kolmogorov-complexity  date  code-golf  string  primes  code-golf  string  natural-language  conversion  code-golf  sequence  code-golf  number-theory  primes  base-conversion  code-golf  math  primes  base-conversion  code-golf  ascii-art  fractal  code-golf  matrix  code-golf  math  tips  geometry  python  string  code-challenge  keyboard  code-golf  graphical-output  code-golf  string  code-golf  number  sequence  cops-and-robbers  number  sequence  cops-and-robbers 

2
数論スタイルに書きます
記号を使用して数学的ステートメントを記述します。 There exists at least one non-negative integer(としてE存在する量指定子) All non-negative integers(と記述されているA、汎用数量詞) + (添加) * (乗算) = (平等) >、<(比較演算子) &(および)、|(または)、!(ない) (、)(グループ化用) 変数名 これはステートメントと同等です 有理数aが存在し、π+ e * aは有理数です。 (もちろん、π= 3.1415 ...π=3.1415...\pi =3.1415...は円周を円の直径で割った数学的定数であり、e = 2.7182 ...e=2.7182...e=2.7182...はオイラー数です) あなたの声明が実際に上記の声明と同等であることを証明しなければなりません。 明らかに、これを実行する「最短」の方法は、ステートメントを真または偽として証明し、その後、すべての偽ステートメントと同様にすべての真のステートメントが同等であるため、些細な真または偽のステートメントで答えることです。 π+ eπ+e\pi+e 得点 E A + * = > < & |そして!、それぞれのスコアに1を追加します。スコアには何も追加しない(で)ください。各変数名はスコアに1を加算します。 例:E x (A …

4
圧縮された曜日
曜日のリストの入力が与えられると、リストの最短のソートされた表現を出力します。 入力の形式は、2文字のストリングの一つ以上からなる文字列であるSu(日)、 Mo(月)、 Tu(など)、 、We、Th、 FrおよびSa。入力は必ずしもソートされた順序で与えられるとは限りません。 入力を出力形式に変換するには、 入力を日曜日から始まる曜日で並べ替えます(例ThMoSaSuFrTuWe-> SuMoTuWeThFrSa)。 あいまいさを残さない場合は、略語を1文字に減らします。たとえば、最初のSが土曜日になることができなかったため、にSuMoTuWeなるはずSMTWです。これにより、出力がソートされなくなります(Tと同じ)。しかし、ThFrSaなるはずThFS火曜日と木曜日の両方が金曜日前にそれを減らしてくると、TFSあいまいさを作成します。 出力がnowの場合、代わりMTWTFに出力D(「week day s」を表します)。同様に、SSなるはずE週間のために終了。最後に、 SMTWTFSなるべきAために、すべての日。 入力と出力は両方とも単一の文字列でなければなりません。 これはcode-golfであるため、バイト単位の最短コードが優先されます。 テストケース: In Out | In Out -----------------------|-------------------- SuTu STu | SuTuWe STW SuTuSa STuS | SuWeTh SWT TuThSa TTS | TuThSu STT Su Su | Sa Sa WeTh WT | FrTh ThF WeTu TW …

15
分岐せずに最大3つの数字を見つける
今回の目標は、分岐またはループを使用せずに、最大3つの整数(2の補数の-(2 ^ 31)から2 ^ 31-1まで)を見つけることです。 あなたはしているだけで使用することを許可します 不平等/平等(==、>、>=、<、<=、!=)これらの数として2つのトークン。 算術演算(+、-、*、/) 論理演算子(!not、&&and、|| or) ビット演算子(~しない、&及び、|又は、^XOR、 、、<< 算術および論理左右シフト)>>>>> 定数。0トークン 変数の割り当て。0トークン 入力3つの変数としてa、bとc。最大数を出力します。 標準のアトミックコードゴルフ規則が適用されます。ご質問がある場合は、コメントに残してください。1つのトークンは、上記の特別なルールのいずれかです。

1
GoogleのHopping Bunny
2017年12月4日、Google Doodleはバニーをフィーチャーしたグラフィカルプログラミングゲームでした。後のレベルは非常に重要であり、アトミックゴルフの挑戦の素晴らしい候補のように見えました。 詳細 ゲーム 次の4つの動きがあります:前方にホップ、左折、右折、ループ。これらの動きのそれぞれが1つのトークンであり、それぞれがゲーム内の1つのタイルであることに対応しています。 バニーは直交する4つの方向(北、南、東、西)に直面できます。 バニーは前に飛び出して(正面を向く方向に1マス移動)、左または右に曲がります。 ループには、他のループを含む他の動きがいくつもあり、それらの反復カウントは正の整数です(ただし、ゲームでは技術的に反復カウント0を許可しています)。 ボードはグリッドに合わせた正方形のセットで、バニーは隣接する正方形の間を飛び回ることができます。 バニーはボイドに飛び込むことができません。ボードから飛び降りようとしても何もしないという意味です。(これは明らかに一部の人々にとっては驚きであり、他の人々にとっては失望でした。) 四角はマーク付きまたはマークなしのいずれかです。バニーが正方形の上にあるとき、それはマークされます。 すべての正方形がマークされると、レベルが完了します。 ソリューションが存在すると仮定することができます。 あなたのコード 目的:ボードを指定して、1つ以上の最短の解決策を見つけます。 入力はボードを形成する正方形の位置のリスト(マークされた正方形とマークされていない正方形を区別する)であり、出力は動きのリストです。入力形式と出力形式は、人間が判読できて理解できるものである限り重要ではありません。 勝利基準:各ボードで1分以内に見つかった最短のソリューションの移動数の合計。プログラムが特定のボードのソリューションを見つけられない場合、そのボードのスコアは(5 *正方形の数)です。 ソリューションをハードコードしないでください。あなたのコードは、以下の例として与えられたものだけでなく、入力としてどんなボードでも取ることができるはずです。 例 最初にゲームをプレイし、これらのいくつかを自分で試す機会を与えるために、ソリューションはネタバレに隠されています。また、それぞれについて以下のソリューションが1つだけ提供されます。 Sはバニーの開始広場(東向き)、#マークのない広場、Oマークのある広場です。動きの場合、私の表記はF=前方へのホップ、L=左折、R=右折であり、時間LOOP(<num>){<moves>}を反復<num>して<moves>毎回行うループを示します。ループが最小数を超えて何度でも実行できる場合は、<num>省略できます(つまり、無限大が機能します)。 レベル1: S## FF レベル2: S## # # ループ(2){FFR} レベル3: S## # # ### ループ{FFR} レベル4: ### # # ##S## # # ### LOOP {F LOOP(7){FL}}(DJMcMayhemにより発見) レベル5: ##### # …

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 …

3
Hexcellent Minesweeping
Hexcellsは、マインスイーパをベースにした六角形のゲームです。(完全な開示:Hexcellsとは何の関係もありません。実際、ゲームはあまり好きではありません。)Hexcellsのルールのほとんどは、Generalized Minesweeper(Minesweeperが任意のグラフで再生)で簡単に表現できます。最も困難なものである{X}と-X-ルール。 {X}ルールは、セルの境界線のことを教えてくれるX鉱山と鉱山これらの全てが連続した経路で互いに接していること。たとえば、ボードがある場合: ? ? ? {3} ? ? ? 鉱山配置の6つの可能性は * . . . . . . * * * * * * {3} . * {3} . . {3} * . {3} * . {3} * * {3} . * . * * * * . * . …

5
1つから2つを取得
この質問で見たように、複雑な論理ステートメントは、一般化された掃海艇の単純な接続詞で表現できます。ただし、一般的な掃海艇にはまだ冗長性があります。 これらの冗長性を回避するために、「Generalized-1 Minesweeper」という新しいゲームを定義します。 Generalized-1 Minesweeperは、任意のグラフで実行されるバージョンの掃海艇です。グラフには、「インジケータ」または「値」という2種類の頂点があります。値はオンまたはオフ(地雷または不発地)のいずれかになりますが、その状態はプレイヤーに知られていません。インジケータは、隣接するセルの1つが正確にオンであることを示します(鉱山)。インジケーターは地雷としてはカウントされません。 たとえば、一般的なマインスイーパの次の掲示板では、セルAとBが両方とも地雷であるか、どちらも地雷ではないことがわかります。 (図ではインジケーターは灰色でマークされ、値は白です) オフになっている値をクリックしてインジケーターを表示する通常の掃海艇とは異なり、一般化された掃海艇にはそのようなメカニズムはありません。プレーヤーは、グラフのどの状態でインジケータを満たすことができるかを単純に決定します。 あなたの目標は2、Generalized-1 Minesweeper を作ることです。Generalized-1 Minesweeperで構造を構築し、8つの特定のセルに対して、値のすべての可能な構成でちょうど 2つのセルがオンになるようにします。これ2は、従来の掃海艇と同じように動作することを意味します。ソリューションを作成するとき、値セルに特定の値を念頭に置いてはいけません。(H.PWizの質問への回答では、一部の値セルが状態から推定できる場合があります) 得点 回答は、最終グラフの頂点の数から8(8入力の場合)を引いたものでスコア付けされ、スコアが低いほど優れています。このメトリックで2つの回答が同点の場合、タイブレーカーはエッジの数になります。

4
パスワードを見つける
通常のN桁のコンビネーションロックは、N個の回転ディスクで構成されています。各ディスクには数字の0から9が順番に刻まれており、それらを開くには正しいパスワードに変える必要があります。明らかに、パスワードがわからない場合は、ロックを解除する前に最大10 N回試行する必要があります。それは面白くない。 それでは、コンビネーションロックの変形を考えてみましょう。距離を明らかにするロックと名付けてください。 距離を明らかにするロックを開く試みが失敗するたびに、ロックを解除するための最小数の動きに応答します。 1つの動きは、1つの位置による回転として定義されます。たとえば、890〜の1つの動き899と〜の9つの動きが137必要952です。 チャレンジ パスワードが不明な距離を明らかにするロックがある場合は、プログラムが長くなりすぎないようにしながら、最小限の試行回数(移動ではない)でロックを開こうとします。 ルールとスコアリング stdinから入力し、stdoutに出力する完全なプログラムを作成する必要があります。プログラムは次のように入出力を行う必要があります。 Start Input an integer N (number of digits) from stdin Do Output a line containing decimal string of length N (your attempt) to stdout Input an integer K (response of the lock) from stdin While K not equal 0 End プログラムは最大N …

4
NANDゲートを使用して4頂点の接続性テスターを構築する
接続グラフは、任意の2つの頂点間のパスを含むグラフです。 チャレンジ 4頂点グラフが接続されているかどうかを判断する[2入力NANDゲート]回路を構築します。 (ゲートの2つの入力は、同じ入力ビットまたは他のゲートにすることができます。) グラフが接続されている場合はTrue、そうでない場合はFalseを出力します。 入力 4つの頂点を持つ単純なグラフの6つの可能なエッジ: [ 0、E 1、0、E 2、1、E 2、0 E 3、1、E 3、2、E 3 ] ここで、a e bは、頂点aとbの間にエッジがあるかどうかを表します 接続性は、次の条件と同等です。 3つ未満の入力がTrueの場合、Falseを出力します。 3つ以上の入力がTrueの場合、Trueを出力します。 正確に3つの入力がTrueで三角形を形成する場合、Falseを出力します。 それ以外の場合は、Trueを出力します。 最も少ないゲートを使用する答えが勝ちです。ネクタイは 、最低の回路の深さ(入力から出力までの最長パスの長さ)によって切断さ れます。

6
8ビット加算器を実装する
チャレンジ 値の範囲が0〜255の2つの整数を受け入れ、256を法とする整数の合計を返す関数を実装します。ビット単位の否定(〜)、ビット単位のOR(|)、ビットシフト演算子(>>、<<)のみを使用できます、および割り当て(=)。 使用できないものには次のものが含まれます(ただし、これらに限定されません) 加算、減算、乗算、除算 ループ 条件文 関数呼び出し バイナリまたはバイナリ否定、ビットシフト演算の使用回数が最も少ない。同点の場合、最も人気のあるソリューションが勝ちます。いつものように、標準の抜け穴が適用されます。 簡単な2ビット加算器の例を次に示します。77個のバイナリ否定、28個のバイナリor、および2ビットシフトを使用して合計スコア107を取得します(これは、Cプリプロセッサをで実行することで確認できますgcc -E)。#definesを削除し、結果の式を単純化することにより、はるかに効率的にすることができますが、わかりやすくするためにそれらを残しました。 #include <stdio.h> #define and(a, b) (~((~a)|(~b))) #define xor(a, b) (and(~a,b) | and(a,~b)) int adder(int a, int b) { int x, carry; x = xor(and(a, 1), and(b, 1)); carry = and(and(a, 1), and(b, 1)); carry = xor(xor(and(a, 2), and(b, 2)), (carry …

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