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

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

4
数字を追加して8をたくさん取得する正しい方法
触発され、この問題をさらに触発されたこの1、7セグメントディスプレイでそれらを表示するために使用されるセグメントにOR演算を行うことにより、2つの整数をとり、ユニークな方法でそれらを加算するプログラムを書きます。参考のため、数字は次のように表されます。 _ _ _ _ _ _ _ _ | | | _| _| |_| |_ |_ | |_| |_| |_| | |_ _| | _| |_| | |_| _| 1は左側ではなく右側の2つのセグメントを使用することに注意してください。この方法で生成できる2つの特殊文字は、数字ではありません。以下の追加表を参照してください。 | 0 1 2 3 4 5 6 7 8 9 --+-------------------- 0 | 0 0 8 8 8 …

17
ギアトレイン、回転
ギアは、噛み合ったギアのサイズに応じて、異なる量の速度を転送します。 ジャックにはギアトレインを回転させる機械があります。しかし、最後のギアの速度はわかりません。 幸いなことに、あなたは素晴らしいコードゴルファーなので、彼を助けることができます! だから、私は何をすべきですか? 各ギアは、内側ギアの半径と外側ギアの半径の2つの数字で表されます。 ギアAが[a,b]でギアBがの場合[c,d]、の速度Aとの速度の比はにBなりますc:b。 ギアのリスト(2タプルのリスト)を指定して、最後のギアの速度を出力します。 最初のギアの速度はであると仮定でき1ます。 完成した例 入力がであるとしましょう[[6,12],[3,10],[5,8]]。 最初のギア[6,12]の速度はになり1ます。 次に、2番目のギア[3,10]の速度はになり1*12/3 = 4ます。 次に、最後のギア[5,8]の速度はになり4*10/5 = 8ます。 テストケース input output [[1,1],[2,2]] 0.5 (1/2) [[1,2],[1,2],[1,2]] 4 (2/1*2/1) [[6,12],[3,10],[5,8]] 8 (12/3*10/5) ルール 基本的なコードゴルフ規則が適用されます。
16 code-golf 

18
調和級数の分母
前に、数値の疑似因子分析を行いました。これは、から1までの数値のLCMですn。 分数を一緒に追加するのに役立ちます。 しかし、我々は分母がいることを見つけること1/1 + 1/2 + 1/3 + 1/4 + 1/5 + 1/6で20はなく、pseudofactorialです6、60。 あなたの仕事は、1/1 + 1/2 + ... + 1/n与えられた正の整数の分母を見つけることnです。 テストケース n result 1 1 2 2 3 6 4 12 5 60 6 20 7 140 8 280 9 2520 10 2520 11 27720 12 27720 13 360360 14 …

12
ジオビット言語
Geobitsian言語は英語の新しい倒錯であり、単語はそれぞれが異なる文字で始まる必要があるセグメントに分割されます。次に、それらの開始文字の1つが別の文字列に現れるたびに、対応するセグメント全体に置き換えられ、大文字が使用されます。 このプロセスはGeobitsizingと呼ばれます。 たとえば、「ジオビット」という単語geo bitsは、 Algy met a Bear A Bear met Algy The Bear was bulgy The bulge was Algy としてGeobitsizedになります Algeoy met a Bitsear A Bitsear met Algeoy The Bitsear was bitsulgeoy The bitsulgeoe was Algeoy すべてgがになるのでgeo、すべてがG(何もありませんが)になりGeo、すべてbがbitsになり、すべてがにBなりBitsます。 各置換は、中間ステップではなく、元の文字列に対して実行されることに注意してください。たとえば、代わりに作成されgeoていた場合gbo、b作成されたはに置き換えられませんbits。 チャレンジ Geobitsian言語を生成できるプログラムまたは関数を作成します。 小文字(az)とスペースで構成される1行の文字列を取得します。これは、セグメントを区切るスペースを使用して、ジオビット化引数として使用される単語になります。あなたは仮定することができます: セグメントは空になりません。そのため、スペースは互いに隣接せず、文字列の先頭または末尾にありません。 各セグメントは異なる文字で始まります。したがって、26を超えることはできません。 たとえば、あなたがサポートしなければならないいくつかの有効なセグメント化された文字列はgeo bits、butt ner、alex、およびdo o r k …
16 code-golf  string 

26
長さmのn個の文字列を長さnのm個の文字列に変換する
「m」の長さの「n」個の文字列を指定すると、次の条件で「m」個の「n」長の文字列を返すプログラムを作成します。 すべての新しい文字列には、他の文字列と同じインデックスの文字が含まれている必要があります たとえば、最初の出力文字列にはすべての入力文字列の最初の文字が含まれている必要があり、2番目の出力文字列にはすべての入力文字列の2番目の文字が含まれている必要があります。 例(文字の下の数字は文字列のインデックスです): input: "car", "dog", "man", "yay" 012 012 012 012 output: "cdmy", "aoaa", "rgny" 0000 1111 2222 input: "money", "taken", "trust" 01234 01234 01234 output: "mtt", "oar", "nku", "ees", "ynt" 000 111 222 333 444 入力が毎回正しいと仮定する 最短バイトのコードが勝ちます! 編集: 多くのプログラミング言語があり、それぞれに多くの解決策がある可能性があるため、各プログラミング言語とそれを提供したユーザーに最も短い解決策を投稿します。コーディングを続けてください! 再編集: ユーザーDennisのおかげで、リーダーボードにスニペットを挿入しました。 コードスニペットを表示 var QUESTION_ID=85255,OVERRIDE_USER=56179;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var …
16 code-golf  string 

10
ジャムはそのように追加しないでください
バックグラウンド Jellyの算術原子は自動的にベクトル化します。実際には、X + Yはいつでも明確に定義されているX及びYは、数値または数値の不揃い配列です。Jellyのソースコードは、ジェネリックベクトライザーを使用してこの動作を実装しますが、この課題では、整数とネストされた整数配列の追加のみを考慮します。 定義 深さを定義Xをとして0あればxはのように、整数である1が整数の(おそらく空の)平坦アレイであり、そして場合としてN + 1は少なくとも一つの深さの要素が含まれている場合、Nと深さのない要素kは> n個。 このように、1は深さ0、[]と[1]、[1、1]は深さ1、[[]、[]]と[[1]、[1]]と[[1]]と[1 、[]]は深さ2、[1、[1、[1]]]は深さ3などです。 操作x + yは、次のように定義されます。 場合のxとyは深持っ0を、その合計を返します。 場合、XとYが等しいが正の深さを有する、再帰的に適用+のすべての項目にXとの対応する項目Y。 xとyの長さが異なる場合、長い配列の末尾を合計の配列に追加します。 結果を返します。 場合のxの深さがより厳密に小さいYの深さ、再帰的に適用されます+にXとのすべてのアイテムのy、その結果を返します。 yの深さが厳密にxより小さい場合は、逆の操作を行います。 たとえば、操作[1、[2、3]、[4]] + [[[10、20]、[30]、40、50]、60]を考えます。 左引数の深さは2で、右引数の深さは3なので、[1、[2、3]、[4]] + [[10、20]、[30]、40、50を計算します]および[1、[2、3]、[4]] + 60。 [1、[2、3]、[4]]および[[10、20]、[30]、40、50]は両方とも深さが2であるため、1 + [10、20]、[2、3 ]を計算します+ [30]及び[4] + 40。 1 + [10、20] = [1 + 10、1 + 20] = [11、21] [2、3] + [30] = …

4
強く接続されたコンポーネント
有向グラフ内の2つの異なる頂点は、グラフ内に互いからのパスがある場合、強く接続されます。強連結成分グラフのサブセットに別個の頂点の各ペアが強固に接続され、サブセットにそれ以上の頂点を追加すると、このプロパティを破るであろうように、グラフのサブセットです。 あなたの課題は、グラフを強く接続されたコンポーネントに分離することです。具体的には、グラフ内のすべてのSCCを出力する必要があります。 I / O: 入力として、有向エッジのリスト、隣接リスト、隣接行列、またはその他の妥当な入力形式を使用できます。よくわからない場合は尋ねてください。グラフには完全に接続されていない頂点がなく、自己エッジがないと仮定できますが、それ以上の仮定はできません。オプションで、頂点の数だけでなく、頂点のリストを入力として使用することもできます。 出力として、各サブリストが強く接続されたコンポーネントである頂点のリストのリストなどの頂点のパーティション分割、または各ラベルが異なるコンポーネントに対応する頂点のラベル付けのいずれかを指定する必要があります。 ラベルを使用する場合、ラベルは頂点、または整数の連続したシーケンスである必要があります。これは、計算がラベルに流れ込むのを防ぐためです。 例: これらの例は、各エッジが1番目のエントリから2番目のエントリに向けられているエッジのリストと、出力パーティションを取ります。この形式または別の形式を自由に使用できます。 入力は最初の行にあり、出力は2行目にあります。 [[1, 2], [2, 3], [3, 1], [1, 4]] [[1, 2, 3], [4]] [[1, 2], [2, 3], [3, 4]] [[1], [2], [3], [4]] [[1, 2], [2, 1], [1, 3], [2, 4], [4, 2], [4, 3]] [[1, 2, 4], [3]] [[1, …

15
n番目の完璧な力を見つけましょう!
完全な力はいくつかの形a**bであり、どこa>0でb>1。 たとえば、125はとして表現できるため、完全なパワー5**3です。 ゴール あなたの仕事はn、正の整数が与えられたときに、-thの完全なべき乗を見つけるプログラム/関数を書くことnです。 スペック 最初の完全な力は1(つまり1**2)です。 合理的な形式の入出力。 組み込みが許可されます。 さらに詳しい情報 OEIS A001597 得点 これはcode-golfです。バイト単位の最短ソリューションが優先されます。 テストケース input output 1 1 2 4 3 8 4 9 5 16 6 25 7 27 8 32 9 36 10 49

8
行列を変換する
行列A(行列の次元の最大値が100)が新しい行列Bに変換されるプログラムまたは関数を記述します。新しい行列Bの各要素は、行列Aの対応する要素の正の隣接要素の合計です。 。 直交する4方向の近傍のみが考慮され、エッジはラップアラウンドしません。 入力例: 1 2 3 4 -1 -2 -3 -4 10 1 2 10 出力: 6 4 2 1 6 13 5 12 10 2 11 12 ルール: 入力として整数を使用します。 これはcode-golfであるため、バイト単位の最短コードが優先されます。
16 code-golf  math  matrix 

10
潜在的に巨大なファイルからn個のランダムな行を読み取ります
この課題は、ファイル全体をメモリに読み込まずに、潜在的に巨大なファイルからランダムな行を読み込むことです。 入力 整数nとテキストファイルの名前。 出力 n 置換せずにランダムに均一に選択されたテキストファイルの行。 これnは、1からファイル内の行数の範囲にあると想定できます。 n答えが均一になる範囲からランダムに数値をサンプリングする場合は注意してください。rand()%nCでは、たとえば均一ではありません。すべての結果は等しく等しくなければなりません。 ルールと制限 テキストファイルの各行の文字数は同じで、80文字以下です。 次の場合を除き、コードはテキストファイルの内容を読み取ってはなりません。 出力する行。 テキストファイルに1行あたりの文字数を計算する最初の行。 テキストファイルの各文字は、正確に1バイトであると想定できます。 行区切り文字は1バイト長であると想定されます。ソリューションでは、この必要性が指定されている場合にのみ、2バイトの長い行区切り文字を使用できます。最後の行が行区切り文字で終了していると仮定することもできます。 答えは完全なプログラムである必要がありますが、便利な方法で入力を指定できます。 言語とライブラリ 任意の言語またはライブラリを使用できます。 ノート ファイルの行数の計算に懸念がありました。nimiがコメントで指摘しているように、これはファイルサイズと1行あたりの文字数から推測できます。 動機 チャットでは、これは本当に「YなしでXを行う」の質問かと尋ねられた人もいました。これを解釈して、制限が異常に人工的なものであるかどうかを尋ねます。 巨大なファイルから行をランダムにサンプリングするタスクは珍しくなく、実際に私が時々しなければならないタスクです。これを行う1つの方法はbashです。 shuf -n <num-lines> ただし、ファイル全体を読み取るため、大きなファイルでは非常に遅くなります。

1
Alphysの最新パズルの開発を支援してください!
地下の王立科学者アルフィスは、新しいパズルのプロトタイプを完成させました。しかし、彼女はそれをテストしてくれる人を見つけることができないようです。 彼女のパズルのルールは次のとおりです。 目標は、左側の中央のタイルから開始して右側に到達することです。高さが偶数のパズルの場合は、2つの中央のタイルの下から始めます。(例:インデックス0の4x4配列では、開始位置は[2,0]-行2、列0になります。インデックス0の5x5配列では、開始位置は[2,0]-行2、列になります0.) 各色のタイルには、独自の「サディスティック」機能があります。 ピンクと緑のタイル(「P」と「G」として表される)は何もしません 赤と黄色のタイル(「R」、「Y」)は通過できません。 オレンジ色のタイル(「O」)により、プレイヤーはオレンジのような香りがします。 紫色のタイル(「U」)は、プレーヤーを向いている方向の次のタイルに移動させ、レモンのような匂いを与えます。 青いタイル(「B」)は、プレイヤーがオレンジのような匂いがしない限り問題ありません。 フレーバーのメカニズムを明確にするために、プレイヤーの匂いは無期限に、または異なる香りのタイルで上書きされるまで持続します。つまり、プレイヤーがオレンジ色のタイルを踏むと、紫色のタイルを踏むまでオレンジの匂いがします。 さらに、青のタイルに垂直または水平に隣接して黄色のタイルを配置すると、青のタイルも通過できなくなります。 あなたのタスクは、入力としてパズルのレイアウトを表す2次元文字配列(または1D文字列配列、または他の有効な形式)を受け入れ、元のパズルと解かれたパズルの両方をアスタリスクなどで出力するプログラムまたは関数を書くことです正しいパスを示す他の文字。与えられたパズルは解けると仮定します。 このパズルを例として使用してください。 BGYBG PGPBG PUBPB OUGYB PPOPP プログラムは次を出力します。 BGYBG PGPBG PUBPB OUGYB PPOPP BGYBG PGPBG ***** OUGYB PPOPP 使用するパズルは、これを使用して生成する必要があります。 標準コードのゴルフ規則が適用されます。最良の回答は、各言語で最短になります。回答には、言語、バイト数、および3つのテストケースが含まれている必要があります。最初の2つは任意のレイアウトにすることができますが、3つ目は次のようにする必要があります。 RRRR RPPR PUOR RPBP

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 

30
交互サインシーケンス
前書き 数値の符号は、a +、または-ゼロ以外のすべての整数に対してaです。ゼロ自体は無意味です(+0と同じです-0)。次のシーケンスでは、正符号、ゼロ、負符号を交互に使用します。シーケンスはで始まる1ため1、正の符号、ゼロ(これは奇妙ですが、数字に0を掛けるだけ)と負の符号で記述します。 1, 0, -1 次の番号は2で、同じことを繰り返します。 2, 0, -2 最終的なシーケンスは次のとおりです。 1, 0, -1, 2, 0, -2, 3, 0, -3, 4, 0, -4, 5, 0, -5, 6, 0, -6, 7, 0, -7, ... または、より読みやすい形式: a(0) = 1 a(1) = 0 a(2) = -1 a(3) = 2 a(4) = 0 a(5) …

10
落下ボールマップの作成
前書き 以前にこのゲームを聞いたことがない人のために。できるだけ長く生き残る必要があるボールをプレーしています。これは、左または右に移動して穴に移動することによって行われます。マップは上に移動するため、長く生き残るためには下に移動する必要があります。画像を検索する場合、おそらく私が意味するゲームを知っているでしょう。 タスク 正の整数nを指定すると、n層の落下ボールマップが出力されます。レイヤー間には、4つの改行があります。レイヤーの幅は25個の下線文字で構成され、長さ5の穴が1つあります。つまり、合計幅は30になります。これは各レイヤーの後にランダムにシフトされます。有効なレイヤーの例は次のとおりです。 _______________ __________ 穴は、レイヤーが円柱のように端にある場合もあります。 _________________________ 先頭に2つのスペースと末尾に3つのスペースがあることに注意してください。作る単一幅5の穴を。 テストケース 以下のために、N = 4、これは有効な出力です。 _______________ __________ ______ ___________________ _______________________ __ _________________________ 注:穴は均一に分布している必要があります。末尾および/または先頭の改行が許可されます。 これはcode-golfであるため、バイト数が最小の提出が勝ちです!

15
最小スカラー積
最小スカラー積 このコードゴルフの問題のインスピレーションは、Googleのコードジャムコンペティションにあります。問題の背後にある前提は、長さが異なる2つのベクトルの入力が与えられると、可能な最小のスカラーを見つけることです。スカラーは、次の式を使用して見つけることができます。 x1 * y1 + x2 * y2 + ... + xn * yn ただし、問題は、入力ケースの数字の順序に応じて、スカラーの複数の値を見つけることができることです(以下を参照)。あなたの目標は、入力ケース番号を方程式にプラグインしてそれを解くことにより、可能な最小のスカラー整数解を決定することです。入力ですべての数字を使用できるのは1回だけであり、すべての数字を使用する必要があります。 次のベクターを使用して例を提供させてください。 入力 3 1 3 -5 -2 4 1 出力 -25 行の最初の整数は、各ベクトルの数値の数nを表します。この場合、各ベクトルに3つの数値があります。 数値nはテストケースごとに異なる場合がありますが、常に2つのベクトルがあります。 入力例では、最小のスカラー積は-25です。 (-5 * 4) + (1 * 1) + (3 * -2) = 25 ルール 両方のベクトルで各整数を一度だけ使用できます。 ベクトル内のすべての整数を使用する必要があります。 出力には最終製品のみを含める必要があります どの言語でも、上記のすべての仕様に従う最小のコードでソリューションを選択します! ヒント:コードを短くしない限り、この問題を総当たりする必要はありません。最小スパンスカラーの検出には、特定の方法が含まれます:)。

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