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

コードゴルフは、ソースコードの最小バイトで特定の問題を解決するための競争です。

4
スターバックスから英語へ
これらの新しいステッカープリンターとワイヤレスドライブスルーヘッドセットパームトップスキャナーの契約が結ばれる前のスターバックスの昔、スターバックスは、2000年代の繁忙期に、厳密な構文と付随するエンコード形式で飲料を説明する簡潔なシステムを備えていました。 カップの垂直方向には、特定の値を含む一連のラベル付きボックスがあります。 Decaf [ ] -blank- X 1/2 1/3 2/3 Shots [ ] -blank- 0 1 2 3 ... 20 followed by S T G V Syrup [ ] -blank- V M C H Milk [ ] -blank- Wh % N B Custom [ ] -blank- ((-|x)?(F|WC|M|CR) )+ Drink [ …
12 code-golf 

6
線形方程式系を解く
一連の線形方程式をできるだけ短く解決するプログラムを記述します。任意の数の方程式の問題を解く必要があります。それらは好きなように入力できますが、拡張行列の係数がおそらく最も簡単です。プログラムは、整数以外の係数やソリューションを処理する必要はありません。退化したケースや無効なケースはテストされません。プログラムは、各変数の値または縮小された行の階層形式を出力する必要があります。 方程式解法ライブラリ、行列関数、または自動解法は許可されていません。配列またはリストを使用して行列をシミュレートできます。 入力例(または同等のもの): m={{2,1,-1,8},{-3,-1,2,-11},{-2,1,2,-3}} これは 2x+y-z=8, -3x-y+2z=-11, -2x+y+2z=-3 出力例(または同等のもの): {2,3,-1} これは x=2, y=3, z=-1
12 code-golf  math 

5
順列の構成–グループ製品
互いに素なサイクル形式で2つの順列が与えられた場合、それらの製品/組成を互いに素なサイクル形式で出力します。 構成を見つけるには、分離したサイクルを2行表記の順列に変換します。サイクルのばらばらの部分の各番号は、同じ部分でそれに続く番号にマッピングされます。包み込みます。ですから1 -> 5、5 -> 1、2 -> 4、4 -> 2。番号が見つからない場合は3 -> 3、それ自体にマップされます。最初のばらばらのサイクルも書くことができます(1 5)(2 4)(3)。これらのマッピングは、次のように2行に変換されます(PとQの順序が逆になっていることに注意してください)。 2つの順列の積は、最初の行が最初の(最も右の)順列の2番目の行と同じになるように、2番目(左端)の順列の列を再配置することによって得られます。次に、積を、変更された2番目の順列の2番目の行に対する最初の順列の最初の行として書き込むことができます。 ウィキペディアの記事 ルール: 入力はリストのリストまたは同様の形式で与えられます のように、すでに2行の形式(インデックスから値へのマッピング)をとることはできません。(1 5)(2 4)[5, 4, 3, 2, 1] すべての数値が各グループで発生する必要はないので(1 5)·(1 2)、発生する可能性があり、結果としてになり(2 5 1)ます。 出力は入力として使用できるはずです。 空のサイクルでの入力をサポートする必要はありません(1 5)·()。代わりに、(1 5)·(1)または同等のものとして与えられます。 サイクルは循環するため、結果が正しければ、順序は関係ありません。 ゼロまたは1から開始できます。結果は同じなので、問題ではありません。 数値はより大きい場合があり9ます。 同じ番号を出力に複数回含めることはできません。だから、[[1],[1]]許可されていません。 この操作は可換ではないことに注意してください!私はPの前にQを置きました。任意の順序を選択できますが、順序が異なる場合は指定してください。 最短コードの勝利 組み込みは許可されますが、組み込みを使用する場合は、それを使用せずにソリューションを表示します。 例: 同等の出力の可能性がすべて示されているわけではありません Input Output [[1, 5], [2, 4]], [[1, …

12
0〜100の偶数を出力する最小のPythonスクリプト
私は楽しみのために自分自身で設定した問題に取り組んでいます。それは0から100までの偶数を出力するPythonスクリプトを作成することです。挑戦はスクリプトをできるだけ小さくすることです。これは私がこれまでに持っているものです: for x in range(0, 101): if (x % 2 == 0): print x 現在、60バイトです。誰でもそれを小さくする方法を考えることができますか? 編集:print(*range(2,101,2),sep='\n')30バイトです。もっと小さい?
11 code-golf  tips  python 

11
四元数平方根
バックグラウンド 四元数は、複素数を拡張する数値システムです。クォータニオンの形式は次のとおりです a+bi+cj+dka+bi+cj+dk a + bi + cj + dk ここa,b,c,da,b,c,d a,b,c,d は実数で、i,j,ki,j,k i,j,k は3つの基本的な四元数単位です。ユニットには次のプロパティがあります。 i2=j2=k2=−1i2=j2=k2=−1 i^2 = j^2 = k^2 = -1 ij=k,jk=i,ki=jij=k,jk=i,ki=j ij = k, jk = i, ki = j ji=−k,kj=−i,ik=−jji=−k,kj=−i,ik=−j ji = -k, kj = -i, ik = -j 四元数の乗算は可換ではないことに注意してください。 仕事 非実数のクォータニオンが与えられた場合、その平方根の少なくとも1つを計算します。 どうやって? このMath.SEの回答によれば、非実数の四元数は次の形式で表現できます。 q=a+bu⃗ q=a+bu→ …

1
EBCDICコードゴルフ(誕生日おめでとう、System / 360!)
IBMがSystem / 360ファミリーのコンピューターを発表してからまもなく50年になります。これらは、EBCDIC文字セットを最初に使用したものです。 この機会に印を付けるために、「通常の」テキストをEBCDICコードページ037に変換したり、EBCDICコードページ037から変換したりできる最短のプログラムを作成できる人を見てみましょう。CP037をISO-8859-1: EBCDIC037_to_Latin1 = [ 0x00,0x01,0x02,0x03,0x9c,0x09,0x86,0x7f,0x97,0x8d,0x8e,0x0b,0x0c,0x0d,0x0e,0x0f, 0x10,0x11,0x12,0x13,0x9d,0x85,0x08,0x87,0x18,0x19,0x92,0x8f,0x1c,0x1d,0x1e,0x1f, 0x80,0x81,0x82,0x83,0x84,0x0a,0x17,0x1b,0x88,0x89,0x8a,0x8b,0x8c,0x05,0x06,0x07, 0x90,0x91,0x16,0x93,0x94,0x95,0x96,0x04,0x98,0x99,0x9a,0x9b,0x14,0x15,0x9e,0x1a, 0x20,0xa0,0xe2,0xe4,0xe0,0xe1,0xe3,0xe5,0xe7,0xf1,0xa2,0x2e,0x3c,0x28,0x2b,0x7c, 0x26,0xe9,0xea,0xeb,0xe8,0xed,0xee,0xef,0xec,0xdf,0x21,0x24,0x2a,0x29,0x3b,0xac, 0x2d,0x2f,0xc2,0xc4,0xc0,0xc1,0xc3,0xc5,0xc7,0xd1,0xa6,0x2c,0x25,0x5f,0x3e,0x3f, 0xf8,0xc9,0xca,0xcb,0xc8,0xcd,0xce,0xcf,0xcc,0x60,0x3a,0x23,0x40,0x27,0x3d,0x22, 0xd8,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0xab,0xbb,0xf0,0xfd,0xfe,0xb1, 0xb0,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0xaa,0xba,0xe6,0xb8,0xc6,0xa4, 0xb5,0x7e,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0xa1,0xbf,0xd0,0xdd,0xde,0xae, 0x5e,0xa3,0xa5,0xb7,0xa9,0xa7,0xb6,0xbc,0xbd,0xbe,0x5b,0x5d,0xaf,0xa8,0xb4,0xd7, 0x7b,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0xad,0xf4,0xf6,0xf2,0xf3,0xf5, 0x7d,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0xb9,0xfb,0xfc,0xf9,0xfa,0xff, 0x5c,0xf7,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0xb2,0xd4,0xd6,0xd2,0xd3,0xd5, 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0xb3,0xdb,0xdc,0xd9,0xda,0x9f]; ルール: プログラムは、(a)テキスト文字列、および(b)実行する操作を示すフラグの2つの入力を受け取る必要があります。 このフラグに基づいて、プログラムはテキストの各バイトを対応するEBCDIC文字に変換するか、その逆を行う必要があります。 入力は、賢明なソース(コマンドライン引数、標準入力、キーボード入力など)から取得できますが、プログラムにハードコーディングしないでください。 出力は画面に表示するか(stdoutなどdocument.write)、ファイル/パイプラインに書き込む必要があります。 組み込みまたは外部のエンコード変換関数(iconvなど)を使用しないでください。 これはコードとゴルフのチャレンジなので、最短の回答(最小バイト)が勝ちます。 例: (注:これらの例は、UTF-8エンコードを使用するように構成された端末で作成されました。システムの構成方法によって異なる結果が表示される場合があります。 ) Input: "HELLO WORLD", convert to EBCDIC Output: "ÈÅÓÓÖ@æÖÙÓÄ" (0xc8c5d3d3d640e6d6d9d3c4) Input: "ÈÅÓÓÖ@æÖÙÓÄ", convert from EBCDIC Output: "HELLO WORLD" …

2
4色のトリオミノでチェス盤を並べます
仕事: 問題を考えてみましょう:「チェス盤に1つの正方形が欠けている場合、それを21個のL-トリオミノにカットします」。これは、2の累乗である任意の正方形のチェス盤サイズで実行できるというよく知られた建設的な証拠があります。チェス盤を、穴のある小さなチェス盤と1つの大きなトリオミノに分割し、そのトリオミノを4つのトリオミノに再帰的に切断できることを確認します。 このタスクでは、8x8のチェス盤をL字型のトリオミノにカットし、隣接する2つのトリオミノが同じ色にならないように4色で着色する必要があります。 仕様: 入力は、穴の位置であり、整数のペアとして指定されます。列インデックスと行インデックスを選択できます。それぞれが0から開始するか、1から開始し、どのコーナーから増加するかを選択できます。0..7または1..8の代わりに、最初の座標としてA..Hが必要な場合があります。また、両方の座標を辞書式順序(行優先または列優先、左から右または右から左、上から下または下から上)で単一の整数0..63または1..64にパックすることもできます。完全なプログラムまたは関数を記述できます。 タイルをASCII、色付きASCII、またはグラフィックプリミティブとして出力できます。ASCII出力を選択した場合、4色を表す印刷可能なASCII文字を4つ選択できます。色付きのASCIIを選択した場合、任意の4つの印刷可能なASCII文字またはスペース以外の1文字のみを選択できます。穴はスペース文字で表す必要があります。キャラクターの1つがスペースキャラクターである場合、穴に隣接するまたはチェス盤の端にあるトリオミノは、この色ではありません。 色付きASCIIまたはグラフィック出力を選択する場合、#000、#00F、#0F0、#0FF、#F00、#F0F、#FF0、#FFF、またはご使用の環境で利用可能な最も近いものから任意の4色を選択できます。グラフィカル出力を選択する場合、グラフィカルプリミティブは、サイズが少なくとも32x32ピクセルの正方形で塗りつぶされ、他の色の2ピクセル以下で区切られている必要があります。上記が環境の画面解像度を超える場合、最小サイズ要件は、画面に収まる最大の正方形サイズに緩和されます。 指定されたチェスボードの有効なタイルを選択できます。選択したタイルの4色を選択できます。4色の選択はすべての出力で同じでなければなりませんが、すべての出力ですべての色を使用する必要はありません。 例: 入力の可能な出力= [0、0](左上隅) #??##?? ##.?#..? ?..#??.# ??##.?## ##?..#?? #.??##.? ?..#?..# ??##??## 同じプログラムの別の可能な出力(入力= [0、7]): ??#??#? ?##?##?? ..xx..xx .?x#.?x# ??##??## ..xx..xx .?x#.?x# ??##??## 「D1」の入力用に別のプログラムが生成される場合もあります(非標準ですが、チェスボードの向きに注意してください)。 AABBCCAA ACBACBAC CCAABBCC ABBAADD AABDABDC BBDDBBCC BABBACAA AABAACCA

30
チャンク+数字のリストを列挙する
10進数のリストがあります。 4, 4, 4, 7, 7, 9, 9, 9, 9, 2, 2, 2, 4, 4 10進数のリストはアイテムと呼ばれます。同じ番号と隣接する番号をグループ化することにより、これらのアイテムから「チャンク」を形成できます。各チャンクに、1から始まり、元のリストにチャンクが現れる順序で1ずつ増加する一意の番号を割り当てたいと思います。したがって、指定された例の出力は次のようになります。 1, 1, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 5, 5 入力フォーマット 数字のリスト。(0-9)必要に応じて、このリストを読むために言語組み込みを使用できます。エンコーディング:ASCII 出力フォーマット 区切り文字で区切られた一連の10進数。プログラムは常に同じ区切り文字を使用する必要があります。区切り文字は0ビットより長くする必要があります。エンコーディング:ASCII 標準の抜け穴が適用されます。

1
ASCIIでRecamánのシーケンスを描く
Recamánのシーケンス(A005132)は、次のように定義される数学的シーケンスです。 A(n)=⎧⎩⎨0A(n−1)−nA(n−1)+nif n=0if A(n−1)−n is positive and not already in the sequenceotherwiseA(n)={0if n=0A(n−1)−nif A(n−1)−n is positive and not already in the sequenceA(n−1)+notherwiseA(n) = \begin{cases}0 & \textrm{if } n = 0 \\ A(n-1) - n & \textrm{if } A(n-1) - n \textrm{ is positive and not already in the sequence} \\ …

6
ウイルス対解毒剤コードゴルフ[終了]
閉じた。この質問には、詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善したいですか?詳細を追加し、この投稿を編集して問題を明確にします。 8か月前に閉鎖されました。 「v」で示されるウイルス、「a」で示されるantidote1、および「b」で示されるantidote2を含む長方形の2D配列があります(「v」、「a」、および「b」以外の値はありません)。 Antidote1は水平方向と垂直方向の隣接ウイルスのみを殺すことができますが、antidote2は水平方向、垂直方向、対角線方向の隣接する(もしあれば)ウイルスを殺すことができます。 解毒剤が有効になったら、最後にいくつのウイルスが残りますか? 例: 入力: vv vv 出力:4 入力: av vv 出力:1 入力: vvv vbv vvv 出力:0 入力: bvb bav vab vvv vvb vvv vvv bva vav 出力:3
11 code-golf 

5
この追加ピラミッドパズルには独自のソリューションがありますか?
追加のピラミッド与えて、それが解決できるかどうかを判断します。追加ピラミッドは、複数のレイヤーで構成され、各レイヤーはその下の数字よりも1つ小さい数字を持ちます。レイヤーはとして記号化されています。はベースレイヤーで、は上のレイヤーです。の番目の番号はとして示されます。はの左端の数で、は右側の数です。あなたが視覚化できるの上に存在するPPPi P i P 1 P i + 1 P i j P i P i 、j P i 、1 P i P i 、j + 1 P i 、j P i + 1 、j P i 、j私iiP私PiP_iP1P1P_1Pi + 1Pi+1P_{i+1}P私PiP_ijjjP私PiP_iPi 、jPi,jP_{i,j}P私、1Pi,1P_{i,1}P私PiP_iPi 、j + 1Pi,j+1P_{i,j+1}Pi 、jPi,jP_{i,j}Pi + 1 、jPi+1,jP_{i+1,j}Pi 、jPi,jP_{i,j}そしてミドル、その名"付加でピラミッド "。Pi …

5
コードを逆にし、OEISを逆にします
ここでのタスクは、自然数nnnを取り、OEISシーケンスのnnn番目の項を生成するプログラムを作成することです。そのシーケンスにはA、6桁の数字が続く形式の識別子が必要です。これで、ソースコードを取得し、そのバイトの順序を逆にして新しいプログラムを作成すると、そのプログラムはOEISシーケンスも実装する必要があります。新しいシーケンスはA、前回と同じ6桁の数字が逆順(先行ゼロを含む)で続いて識別される必要があります。 さて、物事が些細なものになるのを防ぐために、OEIS識別子番号もあなたのプログラムも回文ではありません。つまり、シーケンスとプログラムは異なるはずです。逆のシーケンスが存在しないか、空であるシーケンスを選択することはできません。 シーケンスごとに、0または1のインデックスを使用することを選択できます。同じインデックスを使用する必要はありません。一部のOEISシーケンスにはドメインが制限されているため、シーケンスのドメインの正しい数値を出力するだけで済みます。必要な動作は、ドメイン外では定義されていません(出力0、クラッシュ、ピザの注文など)。 これはコードゴルフであるため、回答はバイト単位でスコア付けされ、バイト数は少ない方が良いです。

3
BrainFuckで「A」を1000回印刷
'A'を1000回印刷するのに最適なBrainFuckコード(コードサイズの観点から)は? 私のアプローチは: 「A」をp [0]に設定します 255をp [1]に設定して255 'A'を3回表示する 235をp [1]に設定して235 'A'を表示します これは効果的ではありませんが、乗算のように同時に牽引カウンターを使用する方法を見つけることができません 乗算よりも良いアプローチはありますか? より一般的な質問:可能な限り最小のコードで多数の乗算を行うルールはありますか?

29
単語内の文字のすべての可能な一意の組み合わせを数える
通常のaz文字を含む文字列が与えられます。(これはどのテストでも常に当てはまると想定でき、すべての文字も小文字であると想定できます)。文字列内の個々の文字の一意の組み合わせの数を決定し、その数を印刷する必要があります。 ただし、可能な組み合わせを数える際に、重複した文字は無視できます。つまり、指定された文字列が「hello」の場合、2つlのsの位置を単純に切り替えても一意のフレーズとしてカウントされないため、合計にカウントすることはできません。 最短バイト数が勝ち、非ゴルフ言語でのクリエイティブなソリューションを楽しみにしています! 例: hello -> 60 aaaaa -> 1 abcde -> 120
11 code-golf  string 

6
独創性による整数のグループ化
前書き: ツイスティパズルを収集します。ほとんどのツイスティパズルは、中国企業によって製造および販売されています。ほとんどの有名企業は、パズルデザイナーにデザインを作成し、市場の製品に向けて協力する許可を求めています。この場合、パズルデザイナーはもちろん、パズルの1つが市場に出回ったことを非常に喜んで誇りに思っています。 しかし、模造パズルを作成する中国企業もあります。これらの模造品は、元の作成者の許可なしに使用されたデザイン、または既存のパズルのまったく安価で低品質のコピーです。 チャレンジ: 特定の順序(左から右へ†)で「リリース」された番号の独創性を判断します。 整数のリストが与えられたら、それらをオリジナリティでグループ化して出力します。 数字の独創性はどのように決定されますか? 番号は以前の番号とまったく同じですか?グループバツ+ 1X+1X+1(オリジナルが最も少ない)。グループバツ+ 1X+1X+1は、他のすべてのグループの後に続きます。 番号は、以前の番号の重複ですが、その負のではなく(つまり、元の数だったnnnが、今− n−n-n、またはその逆)?グループバツXX。 数値の絶対値は、1つ以上の以前の絶対数を連結することで形成できますか?また、前述のグループバツ+ 1X+1X+1またはバツXX一部ではありませんか?基バツ− NX−NX-N、NNN連結に使用される個別の数値の量である(そしてN≥ 1N≥1N\geq1)。 数は上記のグループのいずれにも適合しないので、これまでのところ完全に一意ですか?グループ111(最もオリジナル)。これは他のすべてのグループの前にあります。 これはかなりあいまいに聞こえるかもしれないので、ここでステップバイステップの例: 入力リスト: [34,9,4,-34,19,-199,34,-213,94,1934499,213,3,21,-2134,44449,44] 34は最初の番号で、常にオリジナルでグループ111ます。これまでの出力:[[34]] 9 オリジナルも: [[34,9]] 4 オリジナルも: [[34,9,4]] -34は、以前の数値の負である34ため、グループバツXXます。[[34,9,4],[-34]] 19 オリジナルです: [[34,9,4,19],[-34]] -199は、前の2つの数字19と9で形成できるため、グループバツ− 2X−2X-2ます。[[34,9,4,19],[-199],[-34]] 34は以前の番号の正確なコピーであるため、グループます。バツ+ 1X+1X+1[[34,9,4,19],[-199],[-34],[34]] -213 オリジナルです: [[34,9,4,19,-213],[-199],[-34],[34]] 94は、以前の2つの数字9と4で形成できるため、グループます。バツ− 2X−2X-2[[34,9,4,19,-213],[-199,94],[-34],[34]] 19344994つの以前の数値を用いて形成することができる19、34、4、および2回9、それがグループでありますので、:バツ− 4X−4X-4[[34,9,4,19,-213],[19499],[-199,94],[-34],[34]] 213は、以前の数値の負である-213ため、グループバツXXます。[[34,9,4,19,-213],[1934499],[-199,94],[-34,213],[34]] 3 オリジナルです: [[34,9,4,19,-213,3],[1934499],[-199,94],[-34,213],[34]] 21 オリジナルです: [[34,9,4,19,-213,3,21],[1934499],[-199,94],[-34,213],[34]] -213421342134バツ− …

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