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

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

11
N行N列のボード上の騎士のグラフ
チェスでは、ナイトは、withでマークされた現在の位置に対してXでマークされた位置にのみ移動できます。 A ナイトのグラフは、チェス盤の騎士チェスの駒のすべての法的動きを表したグラフです。このグラフの各頂点はチェス盤の正方形を表し、各エッジは騎士が互いに離れている2つの正方形を接続します。 標準の8行8列のボードでは、グラフは次のようになります。 チャレンジ: 整数所与N、ここで3≤N≤8 、出力NバイNの各位置からの可能な移動の数が示されている基板を表す行列、。以下のためにN = 8、出力は、上記グラフの各頂点の値を示す行列であろう。 出力形式は柔軟です。リストのリストまたはフラット化されたリストなども受け入れられる形式です。 テストケースの完全なセット: --- N = 3 --- 2 2 2 2 0 2 2 2 2 --- N = 4 --- 2 3 3 2 3 4 4 3 3 4 4 3 2 3 3 2 --- N = 5 …

30
入力が与えられると、基数とべき乗が入力に加算されるすべての指数を出力します
これがこのサイトでの私の最初の挑戦です。 課題は、正の入力整数nnnを取り込み、昇順(111から、を含む)で(は現在の整数)の出力を出力することです。 nnni(n−i)i(n−i)i^{(n-i)}i私i 例 入力5が与えられると、プログラムは以下を印刷します。 1 8 9 4 1 14141^4は1およびは8およびは9およびは4およびは1および1+4=51+4=51+4=5 23232^32+3=52+3=52+3=5 32323^23+2=53+2=53+2=5 41414^14+1=54+1=54+1=5 50505^05+0=55+0=55+0=5 入出力 入力は正の整数の形式になります。出力は、コンマまたは改行で区切られた数字のリストになります。 これはcode-golfなので、最短のコードが優先されます。

15
ワンラインキーボード
チャレンジ この課題の目標は、標準のUK QWERTYキーボードの1行のみを使用して、指定された文字列を入力できるかどうかを判断することです。 これはcode golfですので、バイト単位の最短ソリューションが勝ちです! IO 入力は、32から126までのASCII 10進数範囲内の0個以上の文字の単一の文字列になります。このチャレンジでは、空の文字列は入力する必要がないため、1行で入力できると想定できます。 入力は、文字列、文字のリスト、または言語の同等の形式として取得できます。 出力は、単一の行を使用して入力できる文字列の場合は真の値、入力できない場合は偽の値である必要があります。 キーボード・レイアウト 標準のキーボードレイアウトが下にあるもののあいまいさを明確にするために、各行で使用可能なキーのリストを示します。これには、代替の上位キー(Shiftキーを使用してアクセス)が含まれます。 ライン1 標準: `1234567890-= 2行目 標準: qwertyuiop[] 3行目 標準: asdfghjkl;'# 大文字: ASDFGHJKL スペシャル:Caps Lock 行4 標準: \zxcvbnm,./ 代わりの: |<>? 大文字: ZXCVBNM 特別:シフト 5行目 スペシャル:スペースバー 代替の上部キーは、Shiftも同じ行にある場合にのみ押すことができ、大文字のキーにはCaps LockまたはShiftを介してのみアクセスできます。実際に使用できるのは、キーボードの1行だけです! テストケース -> true (empty string) 45-2=43 -> true (line 1) qwerty -> true …

17
構築できるキューブの数
仕事 あなたの仕事は、個のキューブを持つ構造を構築することです。キューブのボリュームは次のシーケンスに従います(下->上)nnn n3、(n − 1 )3、(n − 2 )3、。。。、13n3,(n−1)3,(n−2)3,...,13n^3, (n-1)^3, (n-2)^3,...,1^3 入力 構造の総体積()。VVV 出力 ()の値、つまり:キューブの総数。nnn V= n3+ (n − 1 )3+ 。。。。+ 13V=n3+(n−1)3+....+13V = n^3 + (n-1)^3 + .... + 1^3 ノート 入力は常に整数です。 シーケンスをたどることができない場合があります。つまり、は特定の値を表しません。その場合、-1または選択した偽の値を返します(ただし、一貫性が必要です)。nVVVnnn これはコードゴルフなので、各言語のバイト単位の最短回答が勝ちです。 上記の理由により、回答は承認されません。 リクエスト これはこのサイトでの私の最初の挑戦ですので、私と一緒に我慢し、私が犯した間違いを許してください(そして私に教えてください)。 コードをテストできるように、リンクを提供してください。 できれば、他の人があなたの仕事を理解して感謝できるように、あなたのコードがどのように動作するかについての説明を親切に書いてください。 例 input : 4183059834009 output : 2022 input : 2391239120391902 …
20 code-golf  math 

15
細胞の隣人を見つける
...またはトロイダルムーア周辺 正の整数と負でない整数hを指定するwと、をi囲むすべてのインデックスを返しますi。 一番左から左下、一番上から右下隅に番号が付けられた要素のh行で構成される行列を想定し、w妥当な形式で、インデックスのリストを返します。インデックスを囲みますi。このマトリックスはトーラス(各エッジを包む無限のマップ)です。 たとえば、入力h=4およびw=4は、次の行列になります。 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 より具体的には: 15 12 13 14 15 12 3 0 1 2 3 0 7 4 5 6 7 4 11 8 9 10 11 8 15 12 13 14 15 …
20 code-golf  matrix 

23
ミュージカルタートルと遊ぶ
私の2人の子供は、次のおもちゃで遊ぶのが好きです。 内側に図形のある色付きの領域をタッチすると、カメがその領域を照らし、音を鳴らすか、内部の色または形状の名前を言います。中央のボタンはモードを変更します。触れたときに領域が異なる音符を演奏する1つのモードがあります。子供が時計回りに連続する3つの領域に触れると、特別なメロディ1が再生されます。タッチされた3つの連続した領域が反時計回りに配置されている場合、特別なメロディ2が再生されます。 チャレンジ おもちゃの内部ロジックをシミュレートしましょう。キッドを3回押すと文字列が与えられると、3回押すと連続する領域(時計回りまたは反時計回り)の場合は2つの明確な一貫性のある値を返し、そうでない場合は3番目の明確な値を返します。 詳細 入力エリアはそれぞれ文字で名前が付けられ、色ROYGBは赤、オレンジ、黄色、緑、青の場合があります。またはその形状:HSRTCハート、正方形、星(R)、三角形、円。大文字と小文字は区別されません。入力と出力を大文字と小文字のどちらで扱うかを選択できます。 プログラムは、3回押すと文字列(またはchar配列または同等のもの)を受け取ります。例(色を使用): 、RBO、GYO、BBR、、YRGYGBORB ... プログラムは、3つの可能な結果を​​表す3つの異なるコヒーレントな値を出力します:組み合わせが特別なメロディーをトリガーしない場合は最初の値、組み合わせが時計回りの特別なメロディーをトリガーする場合は2番目の値、組み合わせがトリガーする場合は3番目の値反時計回りの特別なメロディ。例:0特別な組み合わせがない場合1、時計回りの組み合わせ-1によってトリガーされるメロディーおよび反時計回りの組み合わせによってトリガーされるメロディー 間違った入力の処理を心配する必要はありません。 テストケース Input Output // Input based on colors -------------- RBO 0 // No special combination GYO -1 // Counterclockwise melody triggered BBR 0 // No special combination YRG 0 // No special combination YGB 1 // Clockwise melody triggered …

5
嫌いな人を追い払う
セットアップ: ソーシャルネットワークは、投稿の投票数を2つの方法で報告します:純投票数(総投票数-総投票数)と、投票数の割合(最も近い整数に切り上げ)(0.5切り上げ)。正味の投票数は整数(必ずしも正とは限らない)であり、2番目は0から+100までの整数であることが保証されています。アップ投票の数とダウン投票の数は、どちらもゼロまたは正の32ビット整数です(符号付きまたは符号なしを指定できます)。総投票数がゼロの場合、投票率はゼロとして報告されると仮定します。 チャレンジ: これらの2つの整数(ネットのアップ投票と%のアップ投票)が与えられた場合、上記のすべての制約が満たされた状態で、投稿が受け取った総アップ投票の最小数を決定する最短のプログラムはどれですか? 入力制約が保証されています。入力が上記の制約を満たさない場合、プログラムの動作はユーザー次第です。無限ループに入ったりクラッシュしたりしなければ、賞賛に値します。さらにガイダンスが必要な場合は、負の数を返すことを検討してください。 一般的なルール: これはcode-golfであるため、最短の有効なソリューション(バイト単位で測定)が勝ちます。 コードゴルフ言語では、コードゴルフ以外の言語で回答を投稿しないようにしてください。「任意の」プログラミング言語の可能な限り短い答えを考えてみてください。Javascriptのようなクライアント側のWeb言語の賞賛。 複数の言語で興味深いソリューションがある場合は、それらを個別に投稿してください。 回答には標準的な規則が適用されるため、STDIN / STDOUT、適切なパラメーターと戻り値型を使用した関数/メソッド、または完全なプログラムを使用できます。あなたの電話。 デフォルトの抜け穴は禁止されています。 可能であれば、コードのテストへのリンクを追加してください。 また、コードの動作方法の説明を追加してください。 roundsではなく切り捨てる整数除算演算(たとえば20/3 = 6)を実行している場合、それは完全に正しいとは限らないことに注意してください。 上記の制約のエッジケースを調査する追加のテストケースを歓迎します。 期待される戻り値のタイプは数値ですが、ブールの「false」を0の代わりに使用できます。 テストケースの例: 最初の列は、議論を容易にするために含まれている単なる参照番号です。 ref net %up answer 1 0 0 => 0 2 -5 0 => 0 3 -4 17 => 1 4 -3 29 => 2 5 -2 38 => …

18
上ウィトオフまたは下ウィトオフ?
まず、Beattyシーケンスについて説明しましょう。正の無理数rが与えられた場合、正の整数をrに順番に乗算し、結果の各計算のフロアを取得することにより、無限シーケンスを構築できます。例えば、 r > 1の場合、特別な条件があります。s = r /(r -1)として別の無理数sを形成できます。これにより、独自のBeattyシーケンスB sを生成できます。巧妙なトリックは、B rとB sが相補的であるということです。つまり、すべての正の整数は、2つのシーケンスのうちの1つに正確に含まれます。 r = the(黄金比)を設定すると、s = r + 1と2つの特別なシーケンスが得られます。下WythoffシーケンスのためのR: 1, 3, 4, 6, 8, 9, 11, 12, 14, 16, 17, 19, 21, 22, 24, 25, 27, 29, ... そして、上側Wythoffシーケンスのための: 2, 5, 7, 10, 13, 15, 18, 20, 23, 26, 28, 31, …

22
ダブル、XOR、もう一度やり直してください
任意の整数n> 0に対して、関数gをg(n)= n XOR(n * 2)として定義します。 所与のx> 0、最小の整数を見つける> 0、YようグラムK(Y)= X一部について> 0 kは。 例 x = 549 549 = 483 XOR (483 * 2) (as binary: 1000100101 = 111100011 XOR 1111000110) 483 = 161 XOR (161 * 2) (as binary: 111100011 = 10100001 XOR 101000010) つまり、g 2(161)= 549です。g(n)= 161のようなnは存在しないため、これ以上先に進むことはできません。したがって、x = 549の期待される出力はy …

11
これらのサイコロでこの言葉を綴ることができますか?
手紙のサイコロは、単語ゲームでは一般的です。たとえば、おかしな単語をボグルサイコロで綴ろうとするのは楽しいことです。ほんの一握りのサイコロをつかむと、特定の単語を綴ることができなくなる可能性があります。この課題は、そのアイデアの一般化です。 チャレンジ それぞれが少なくとも1つの顔と単語を持つサイコロのリストが与えられたら、あなたの仕事は、与えられたサイコロを使用してその単語を綴ることができるかどうかを判断することです(その場合、それは真実の結果を返すはずです)。各ダイから1文字のみ使用でき、ダイは1回しか使用できません。指定されたサイコロをすべて使用する必要はありません。 例 サイコロ[[A]、[C]、[T]]および文字列CATを使用した簡単な例では、結果はtrueです。BATは、Bが付いたサイコロがないため、もちろんfalseを返します。 サイコロのセットとして[[A、E、I、O、U]、[A、B、C、T]、[N、P、R]]が与えられた場合、ART、TON、およびCURに対してtrueを返します。 、ただし、CAT、EAT、およびPANについてはfalseです。これらの文字列はサイコロを再利用する必要があるためです。また、十分なサイコロがないため、CRABにこれらのサイコロを綴ることができないこともかなり明白です。 サイコロのセットとして[[A、B、C]、[A、E、I]、[E、O、U]、[L、N、R、S、T]]が与えられた場合、次のことができます。 CAT、BEE、BEAN、TEA、BEET、およびBANをスペルしますが、LONE、CAB、BAIL、TAIL、BAA、またはTONをスペルすることはできません 同じダイが複数存在する場合があります。[[A、B、C]、[A、B、C]、[A、B、C]]が与えられた場合、CAB、BAA、AAAなどを綴ることができます...その中にB、またはC。 ルール 標準的な抜け穴を悪用しない これはcode-golfなので、最短のコードが優先されます。 単語とサイコロの両方が大文字のみで構成されていると仮定することができます。 単語は常に少なくとも1文字の長さであり、常に少なくとも1つのダイが存在すると想定できます。 あなたはダイスが同じ文字を複数持つことはないと想定するかもしれません。 入力および出力は、任意の便利な形式にすることができます。

15
関数クリップボード:貼り付け
この課題は、2018年5月の「Language of the Month」イベントの一部として、MATL言語の機能の一部に関連しています。 関連する課題: 関数クリップボード:コピー。 前書き MATLの関数クリップボードは、通常の入力取得関数への最新の4つの呼び出しへの入力を保存(「コピー」)します。通常の関数は、MATLで最も一般的なタイプの関数です。入力取得とは、関数が少なくとも1つの入力を取得することを意味します。保存されたクリップボードの内容は、スタックにプッシュできます(「貼り付け」)。 このチャレンジは、クリップボードの内容を入力として受け取ります。そのクリップボード状態を生成したすべての関数は、入力として1つ以上の正の整数をとったと想定されます。したがって、クリップボードの状態は、数字のリストのリストで表すことができます。(クリップボードへの実際の入力方法の詳細については、関連するチャレンジを参照してください。ただし、現在のチャレンジには必要ありません)。 クリップボードの内容を解釈する 例1 最初の内側のリストにはを参照し、最新したがって、クリップボードの状態なので、上の関数呼び出し、および [[11, 28], [12, 16], [4], [5, 6]] は、最後の関数呼び出しが2つの入力を受け取ったこと11を28示します。最後から2番目の呼び出しは、入力を取りました12、16。など(このクリップボードの状態は、関連するチャレンジの最初の例のコードによって生成されます)。 例2 十分な関数呼び出しがなかった場合、クリップボードの末尾の内部リストは空になります。 [[7, 5], [], [], []] (これは、単に7およびを追加するプログラムによって作成されます5)。 例3 関数呼び出しには任意の数の入力を含めることができますが、少なくとも少なくとも1(入力を受け取らない関数はクリップボードの状態を変更しません)。したがって、次のことも可能です。 [[3], [2, 40, 34], [7, 8, 15], []] クリップボードの内容にアクセスする 関数クリップボードの内容は、MATLの関数M(ちなみに通常の関数ではなく、クリップボード関数)を使用してスタックにプッシュされます。この関数は、入力として正の整数を受け取り、次のようにクリップボードの内容の一部をスタックにプッシュします。例1のクリップボードの状態を参照してください: [[11, 28], [12, 16], [4], [5, 6]] 1Mすべての入力を最新の関数呼び出しに返します。そう考える例えば、それができます11、28。 同様に2M、3Mおよびは、4M最新の2番目、3番目、4番目の関数呼び出しにすべての入力を返します。そう2Mなります12、16。3M与える4; そして、4Mなります5、6。 …

30
範囲内のものを数える
チャレンジ: ものの数をカウント1範囲の間のすべての数のバイナリ表現で。 入力: 2つの非10進正整数 出力: 12つの数値の間の範囲にあるすべてのs の合計。 例: 4 , 7 ---> 8 4 = 100 (adds one) = 1 5 = 101 (adds two) = 3 6 = 110 (adds two) = 5 7 = 111 (adds three) = 8 10 , 20 ---> 27 100 , 200 ---> …

13
カレーにして
引数x 1、x 2、…、x nをとる関数fを持つ –すなわち。 f:X 1 ×X 2 ×…×X n →Y – カリー化は、fを、さらに別の関数にマップする単一の引数a 1をとる関数として再定義します。このテクニックは、部分的に適用する場合に便利です。たとえば、カリー化したpow関数を使用して記述できますexp = pow(e)。 例 3つの引数(f:X 1 ×X 2 ×X 3 →Y)を取る次の関数fがあると仮定します。 def f(a,b,c): return a + b * c この関数をカリー化すると、f_curryが残ります:X 1 →(X 2 →(X 3 →Y))、その関数を2回呼び出すと、次と同等のf_curry(1)(2)関数(h)が返されます: def h(c): return 1 + 2 * c カリー化された関数fは次のように書くことができます(Python 3): …

8
ほぼコロンボのエピソード
あなたの仕事は、コロンボのエピソードタイトルで2人の行方不明のキャラクターを見つけることです。 入力 コロンボエピソードの69タイトルのうちの1つ(以下を参照)で、正確に2文字が置き換えられ*ます。 例: "Ran*om for a *ead Man" 出力 エピソードの完全なタイトルを返すか、文字の順序が明確であれば、2つの不足している文字だけを適切な形式で返すことができます。 有効な出力: "Ransom for a Dead Man" "sD" ["s", "D"] エピソード 書式なしリストを取得するには、このリンクに従ってください。 Prescription: Murder Swan Song Murder, Smoke and Shadows Ransom for a Dead Man A Friend in Deed Sex and the Married Detective Murder by the Book An Exercise …

30
base-36文字列をインクリメント
これは、以前スタックで尋ねた同様の質問のコードゴルフバージョンですが、面白いパズルになると思いました。 36を底とする数値を表す長さ10の文字列が与えられた場合、それを1つ増やし、結果の文字列を返します。 これは、文字列から数字だけを含めることを意味0する9とからの手紙aにz。 Base 36は次のように機能します。 最初に0to を使用して、右端の数字がインクリメントされます9 0000000000> 9回の繰り返し> 0000000009 その後、ato zが使用されます。 000000000a> 25回の繰り返し> 000000000z 場合はzニーズがインクリメントされるように、それはゼロにループバックし、その左に数字がインクリメントされます。 000000010 さらなるルール: 大文字または小文字を使用できます。 先行ゼロを削除することはできません。入力と出力の両方が長さ10の文字列です。 zzzzzzzzzz入力として処理する必要はありません。 テストケース: "0000000000" -> "0000000001" "0000000009" -> "000000000a" "000000000z" -> "0000000010" "123456zzzz" -> "1234570000" "00codegolf" -> "00codegolg"

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