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

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

17
交互パターン
削除されたstackoverflowの質問で、誰かが以下を投稿しました: 交番パターンを印刷するプログラムまたは機能を記述*し、#指定された整数に基づきますn。いくつかの例: 入力:n=1 出力: * 入力n=5 出力: *#### ###** ***## ###** *#### 入力:n=8 出力: *####### ######** ***##### ####**** ****#### #####*** **###### #######* かなりクールなコードゴルフの挑戦のように見えたので、ここにあります。 これらのパターンはどのように構築されますか? 最初の行はシングル*で始まり、後続のn-1量が続き#ます。 2行目は、2つが含まれている*と、n-2大手の量#。 3行目は3 *で始まり、その後に続くn-3量が続き#ます。 等 中間(n/2)に達したら、の量で再度カウントします*。これは上記の例で見ることができます。 入力が奇数の場合、行の逆のペア(最初と最後、2番目と最後から2番目など)はまったく同じであることに注意してください。このn=5例では、最初と最後の行は*####;です。最後の行の2番目と2番目の行は###**です。 ただし、偶数の入力番号の場合、行の逆のペアは逆になります。このn=8例では、最初と最後の行は*#######and #######*です。最後の行の2番目と2番目の行は######**and **######です。等 チャレンジルール: およびの代わりに、任意の2つの印刷可能な文字を使用できます。and を使用できます。および; および; 等。あなたが使用したものをあなたの回答に明記してください。*#AB37<> n正の整数(>= 1)であると仮定できます。 STDOUTに出力する代わりに、各行の文字列のリスト/配列または文字の2Dマトリックスを出力できます。 一般的なルール: これはcode-golfであるため、バイト単位の最短回答が優先されます。 コードゴルフ言語では、非コードゴルフ言語で回答を投稿しないようにしてください。「任意の」プログラミング言語の可能な限り短い答えを考えてみてください。 回答には標準的な規則が適用されるため、STDIN / STDOUT、適切なパラメーターと戻り値型、完全なプログラムを備えた関数/メソッドを使用できます。あなたの電話。 デフォルトの抜け穴は禁止されています。 可能であれば、コードのテストへのリンクを追加してください。 …

12
エクササイズセットですか?
多くのエクササイズが体の半分にしか影響を与えないことは誰もが知っていることなので、片側に1回ずつ2回行う必要があります。そのようなエクササイズには、左側と右側の2つのカウンターパートがあります。ただし、両側のエクササイズが同じ順序である限り、2つのカウンターパートを連続して実行する必要はありません。エクササイズプログラムでサイドを切り替えることもできますが、一方の側でいくつかのエクササイズを開始し、もう一方の側でいくつかのエクササイズを開始するのは意味がありません。 チャレンジ 運動部は、その後半がネゲート最初の半分の整数のと同じ順序で構成された非ゼロの整数のリストであり、各半分の整数の符号は同じです。エクササイズパートの前半のサインはそのリーディングサイドです。 運動セットは一緒に連結同じリーディング側とのゼロ以上の運動部です。 入力としてゼロ以外の整数のリストを指定して、それが運動セットかどうかを判断します。整数は必ずしも一意ではありません。リストの長さは必ずしも均等ではありません。 ソリューションでは、標準の抜け穴を使用しない場合があります。出力には、2つの異なる一貫した値を使用できます。これはcode-golfであるため、最短のソリューションが優先されます。 例 [-5, -1, -7, -6, -5, 5, 1, 7, 6, 5]運動部の一例です。前半はで[-5, -1, -7, -6, -5]、後半はで、前半の[5, 1, 7, 6, 5]各整数は否定されます。さらに、前半の整数はすべて同じ符号です。このエクササイズパートのリーディングサイドは-1です。 [3, 6, 5, -3, -6, -5, 1, 6, 4, 3, -1, -6, -4, -3]エクササイズセットの例です。その個々のエクササイズ部分は[3, 6, 5, -3, -6, -5]and [1, 6, 4, 3, -1, -6, …

27
ユニークな南京錠PINリスト!
前書き プライベートチャットで、私の友人が最近有効なピンに次の2つの制限があるセキュリティシステムを偶然見つけました。 各数字は一意である必要があります(つまり、「1」は一度しか表示されません) 数字の順序は関係ありません( "1234" = "4321") この南京錠システムがどれほど悪いかを示すために、実際にすべての有効なPINを列挙しましょう! 入力 入力は、PINの長さを示す単一の正の整数で構成されます。 出力 出力は、指定された長さのすべての有効なPINを列挙する非負の整数または文字列*のリストで構成されます。 *より正確には、すべての組み合わせを印刷する場合に、人間がすべての組み合わせを試すために使用できるもの。これは、数字のセットのセットと数字のアレイの配列が適切であることを意味します。 誰が勝ちますか? これはコードゴルフなので、バイト単位の最短回答が勝ちです!標準ルールと抜け穴が適用されます。 コーナーケース 10より大きい整数が入力された場合の出力動作は未定義です。 ゼロのエントリには実際にゼロが含まれるため、各出力エントリ内の数字の順序は未定義です。つまり、「0123」から「123」を除去することはできませんが、「1230」、「1203」、「1023」はすべて有効です「0123」と同様です。 テストケース 1 [0,1,2,3,4,5,6,7,8,9] 2 [10,20,30,40,50,60,70,80,90,21,31,41,51,61,71,81,91,32,42,52,62,72,82,92,43,53,63,73,83,93,54,64,74,84,94,65,75,85,95,76,86,96,87,97,98] 3 [210,310,410,510,610,710,810,910,320,420,520,620,720,820,920,430,530,630,730,830,930,540,640,740,840,940,650,750,850,950,760,860,960,870,970,980,321,421,521,621,721,821,921,431,531,631,731,831,931,541,641,741,841,941,651,751,851,951,761,861,961,871,971,981,432,532,632,732,832,932,542,642,742,842,942,652,752,852,952,762,862,962,872,972,982,543,643,743,843,943,653,753,853,953,763,863,963,873,973,983,654,754,854,954,764,864,964,874,974,984,765,865,965,875,975,985,876,976,986,987] 4 [3210,4210,5210,6210,7210,8210,9210,4310,5310,6310,7310,8310,9310,5410,6410,7410,8410,9410,6510,7510,8510,9510,7610,8610,9610,8710,9710,9810,4320,5320,6320,7320,8320,9320,5420,6420,7420,8420,9420,6520,7520,8520,9520,7620,8620,9620,8720,9720,9820,5430,6430,7430,8430,9430,6530,7530,8530,9530,7630,8630,9630,8730,9730,9830,6540,7540,8540,9540,7640,8640,9640,8740,9740,9840,7650,8650,9650,8750,9750,9850,8760,9760,9860,9870,4321,5321,6321,7321,8321,9321,5421,6421,7421,8421,9421,6521,7521,8521,9521,7621,8621,9621,8721,9721,9821,5431,6431,7431,8431,9431,6531,7531,8531,9531,7631,8631,9631,8731,9731,9831,6541,7541,8541,9541,7641,8641,9641,8741,9741,9841,7651,8651,9651,8751,9751,9851,8761,9761,9861,9871,5432,6432,7432,8432,9432,6532,7532,8532,9532,7632,8632,9632,8732,9732,9832,6542,7542,8542,9542,7642,8642,9642,8742,9742,9842,7652,8652,9652,8752,9752,9852,8762,9762,9862,9872,6543,7543,8543,9543,7643,8643,9643,8743,9743,9843,7653,8653,9653,8753,9753,9853,8763,9763,9863,9873,7654,8654,9654,8754,9754,9854,8764,9764,9864,9874,8765,9765,9865,9875,9876]

8
勾配で地域を分類する
定義 K 番目の大きさの正方行列の環N、1つの≤K≤天井(N / 2)の要素によって形成されたリストであるk個目と(N-K + 1)番目の行と列が、無し最初と最後のk-1要素。 例: マトリックス: 1 2 3 4 5 6 7 8 9 1 8 7 6 5 4 3 2 1 9 8 7 6 5 4 3 リングで区切られた: + ------------------- + | 1 2 3 4 5 | | + ----------- + | …

26
サブ配列内の等しい数
数字の配列を指定length >=3し、length % 3 == 0 [1, 2, 3, 4, ...] 長さ3のサブ配列に分割します [[1, 2, 3], [4, 5, ...], [... そして、配列を返します [0] => すべての数値が等しいサブ配列内のケースの量 [1] =>サブ配列内のすべての数値が等しくない場合、2つの数値のみが等しいサブ配列内のケースの量 例とテストケース: 入力:[2, 4, 2, 5, 5, 5, 4, 2, 1, 3, 3, 1]出力[1, 2] それの訳は [[2, 4, 2], [5, 5, 5], [4, 2, 1], [3, …

10
旅客機の座席を割り当てる
先週のAPLレッスンに触発されました。 大文字の2D座席マップと1Dの顧客リストを指定して、座席マップと顧客リストを返しますが、次のように変更します(占有座席と座席のある顧客を示すため)。 入力乗客リスト内の一意の文字ごとに、座席マップ内のその文字の多く(または十分でない場合はすべて)を小文字にして、左から右、上から下に移動します。 座席表の一意の文字ごとに、乗客リストのその文字の多く(または十分でない場合はすべて)を小文字にして、左から右に移動します。 入力シートマップは、集合{からスペースと大文字が含まれF、B、P、E}、とすることができます。 改行によって行に分割されます 文字列のリスト 大文字の行列 他の同等の形式で 入力された顧客リストは、集合{から大文字が含まれF、B、P、E}であってもよいです。 文字列 文字のリスト 他の同等の形式で 返される座席マップは、0個以上の文字が小文字に折り畳まれていることを除いて、入力されたものと同一でなければなりません。 返される顧客リストは、ゼロ以上の文字が小文字に折り畳まれていることを除いて、入力リストと同一である必要があります 先頭と末尾の空白は許可されます 例(ユナイテッドの航空機の短縮版) ERJ145 座席表入力: P E E PP E EE E EE E EE E EE P PP E EE E EE E EE 乗客リストの入力: FFEEEEEEEEEEEEEEEE 座席マップの出力: P e e PP e ee e ee …

12
フィボナッチパターンを見つける
おそらく、最初の2つの項が(または時々)フィボナッチ数列に精通しており、その後のすべての項は前の2つの項の合計です。次のように始まります。0, 11, 1 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ... 時々、シーケンスには、興味深いと思う特定のパターンを持つ数字が含まれています。隣接する数字のペアの違いは、他のペアと同じです。たとえば、で始まるシーケンスで0, 1は、18番目の項は987です。9-8=1および8-7=1。少し満足しています。 チャレンジ 2つの初期値F(0)とが与えられるとF(1)、F(n) = F(n-1) + F(n-2)それによって生成されたシーケンス内のすべての数値を出力し、次の基準を満たします。 隣接する数字のペアの違いは、他のペアと同じです 少なくとも3桁の長さです(このパターンでは1桁と2桁の数字は関係ありません) 入力 10 ** 10(100億)未満の2つの非負整数 出力 10 ** 10未満で、チャレンジセクションの条件を満たすすべての整数 10 ** 10を超える数字を出力することは可能ですが、必須ではありません 繰り返される数字がパターン(例777)を満たす場合、基準を満たす無限の数字がある可能性がありますが、プログラムは永久に出力する必要はありません そのような整数が存在しない場合は、数値でない限り何でも出力します(何も、null、空の配列、エラーメッセージ、悲しい顔など) パターンに一致する数字がシーケンス内に複数回出現する場合、1回または発生した回数だけ出力できます。 入力が基準を満たす場合、出力に含める必要があります ルール 入力および出力は、任意の標準形式にすることができます 標準的な抜け穴は禁止されています これはコードゴルフなので、バイト単位の最短コードが勝ちます 例/テストケース Input , Output [1,10] …

8
Code 39バーコードエンコーダー
文字列をCode 39形式のバーコードにエンコードする関数またはプログラムを記述します。各文字は、4つのギャップで区切られた5つのバーとしてエンコードされます。2つのバーと1つのギャップは広く、他のバーは狭い(10 * 4コード)、または3つのギャップは広く、バーは1つもない(4コード)。これにより、44個の異なるコードが得られます。そのうちの1つは、エンコードされた文字列の開始と終了を示すために使用される予約済みのコードです。 チャレンジ 入力は、セットの文字のみを含む文字列です 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ-. +/$% 出力は、バーコード文字列としてエンコードされた文字列です。狭いギャップと文字間のギャップは単一のスペースであり、広いギャップは3つのスペースです。狭いバーは、ユニコード文字「フルブロック」、█のUTF-8バイトシーケンスです。つまり0xE2 0x96 0x88、広いバーは、このような3つのバイトシーケンス/文字(███)です。コードの完全なリストは次のとおりです。 Spaces 0100 0010 0001 1000 1011 1101 1110 0111 Bars 00000 + / $ % 10001 1 A K U 01001 2 B L V 11000 3 C M W 00101 4 D N X 10100 5 E O …
16 code-golf 

9
中間ストリング配列の反射
まず、文字の2次元配列で文字の反射を再定義することから始めましょう。 明確な小文字のアルファベット文字を持つ正方形の2次元配列の文字が与えられた場合、行列の文字の反射を、正方形の中心を通して文字を直接横切る文字と交換するように定義します。 このように、手紙の反射cで abcde fghij klmno pqrst uvwxy 構成になります abwde fghij klmno pqrst uvcxy ためcとw切り替えられています。 さらにいくつかの例(上記と同じ元の構成): キャラクターeを反映すると形成されます abcdu fghij klmno pqrst evwxy キャラクターmを反映すると abcde fghij klmno pqrst uvwxy キャラクターbを反映すると形成されます axcde fghij klmno pqrst uvwby チャレンジ 個別の小文字を持つ2次元配列の文字が与えられた場合、指定された文字列の各文字を調べて、行列に「反映」します。 明確化:文字列の文字はfrom a-z、文字は一意であり、配列は少なくとも1x1から最大5x5です(明らかに、英語のアルファベットには26文字しかないため)。文字列の文字は2次元配列。文字列は最大100文字です。 入力 文字列s、整数N、そしてNxN文字の配列。 例 入力: ac 2 ab cd 出力: dc ba *理由:最初に、を反映aしますd。次に、反映cしてbいるためにはc、入力文字列内の二文字です。 …
16 code-golf  string 

16
黙示録の21の髪型
黙示録の21の髪型 1から21(または0から20)の間の数字のリストが与えられた場合、次の面の「つなぎ合わされた」描画を出力します(情報のつなぎのルールを参照)。 ___ ,,, ooo === +++ ### -*~*- (o o) (o o) (o o) (o o) (o o) (o o) (o o) ooO--(_)--Ooo-ooO--(_)--Ooo-ooO--(_)--Ooo-ooO--(_)--Ooo-ooO--(_)--Ooo-ooO--(_)--Ooo-ooO--(_)--Ooo- *** ||| _/7 ))) ((( xxx @__ (o o) (o o) (o o) (o o) (o o) (o o) (o o) ooO--(_)--Ooo-ooO--(_)--Ooo-ooO--(_)--Ooo-ooO--(_)--Ooo-ooO--(_)--Ooo-ooO--(_)--Ooo-ooO--(_)--Ooo- ((_ >X< '*` ^^^ …

2
これがStack Catsスタイルの有効なStack Catsプログラムかどうかを確認してください!
バックグラウンド Stack Catsは、Martin Enderによって作成された可逆の難解な言語です。Stack Catsの各コマンドは、それ自体の逆(のような対称文字として表される-_:T|)であるか、その逆のコマンド(のような鏡像として表される() {} [] <>)のいずれかです。Stack Catsには、プログラム全体がそれ自体の鏡像であるべきという強力な構文要件があります。これは、有効なStack Catsプログラムが自然な鏡像アンビグラムであることを意味することに注意してください。 Stack Catsのコマンドセット全体を次に示します。 自己対称: !*+-:=ITX^_| 対称ペア: () {} [] <> \/ その他の文字は無効です。上記の文字セットにない文字を持つ入力はfalseを出力する必要があります。 言語には追加の制約が()あり、{}ペアは常にバランスをとる必要がありますが、簡単にするために、この状態をチェックする必要はありません。 以下は、有効なStack Catsプログラムの例です(再び、バランスの取れたかっこをチェックしないことに注意してください)。 {[+]==[+]} [)>^<(] ({T)}|{(T}) <(*]{[:!-_:>}<[<)*(>]>{<:_-!:]}[*)> これらは次のとおりではありません。 b<+>d ())( ({[<++<]}) チャレンジ 指定された文字列が有効なStack Catsプログラムであるかどうかを判断するプログラムまたは関数を作成します。また、コードは自然な鏡像アンビグラムである必要があります。 コードはそれ自体の鏡像でなければなりません。 自然に表示されるコード全体がそれ自体の鏡像である限り、コードには1つ以上の改行を含めることができます。 表示が変更されないため、各行の末尾の空白を省略または追加できます。 タブ文字は表示にあいまいさがあるため、許可されていません。 注:コードは有効なStack Catsプログラムである必要はありません。Stack Catsで許可されていない特定の余分な文字が含まれている場合があります。(完全なリストについては以下を参照してください。) たとえば、次の2つのプログラムは対称的であり(したがって有効な送信)、3番目のプログラムはそうではありません。 ({bTd}) [<q|p>] ({bTd}) IXI ({bTd}) IXI 「ミラー対称性」に関しては、Stack …

12
自動ダイヤラーをプログラムする
当時、電話の自動ダイヤラーは、ダイヤルする番号の各桁に1列のパンチカードを使用していました。列には7行ありました。最初の3行は、それぞれ番号(1,2,3)、(4,5,6)、および(7,8,9)を表しています。最後の3行は、この配置を90°回転させました:(1,4,7)、(2,5,8)、および(3,6,9)。中央の行は0に使用されました。1〜9の数字には、最初の3行に1つ、下の3行に1つの2つの穴が開けられます。ゼロでは、中央の行のみがパンチされます。レッツ・視覚化数6のためのパンチ列(.非パンチで、xパンチされ、左側のガイドだけでエンコーディングを説明することです): 123 . 456 x 789 . 0 . 147 . 258 . 369 x ダイヤルしようとしている番号を含む行を探します。6の場合、これは2行目、9行目です。これらの2つの行はパンチされ、残りの5つの行はパンチされません。すべての数字0-9のパンチパターンは次のとおりです。 0 1 2 3 4 5 6 7 8 9 123 . x x x . . . . . . 456 . . . . x x x . . . 789 . …

12
サジェクションの数
仕事 2つの正の整数nとが与えられた場合k、はn > k、n区別可能な要素のセットから区別可能な要素のセットへの射影の数を出力しkます。 定義 関数f:S→Tは、すべてのt∈Tに対してf(s)= tであるようなs∈Sがある場合、サジェクションと呼ばれます。 例 ときn=3とk=2、出力は6あるので、6からsurjections {1,2,3}には{1,2}: 1↦1, 2↦1, 3↦2 1↦1, 2↦2, 3↦1 1↦1, 2↦2, 3↦2 1↦2, 2↦1, 3↦1 1↦2, 2↦1, 3↦2 1↦2, 2↦2, 3↦1 テストケース n k output 5 3 150 8 4 40824 9 8 1451520 参照 OEIS A019538 得点 これはcode-golfです。バイト単位の最短回答が優先されます。 標準の抜け穴が適用されます。

10
以前の合成番号
シーケンス定義 a(n)次のように正の整数のシーケンスを作成します。 a(0) = 4 a(n)最初の項以外の各項は、次を満たす最小の数値です。a )a(n)は合成数、 b)a(n) > a(n-1)および c)a(n) + a(k) + 1はそれぞれの合成数です0 <= k < n。 だから私たちはで始まりa(0) = 4ます。次のエントリはでa(1)なければなりません9。それらは合成できない5か7、合成できないため、合成できない6か合成でない8ため、合成できないか、合成できないから6+4+1=11です8+4+1=13。最後に、、9+4+1=14これは複合a(1) = 9です。 次のエントリはであるa(2)必要があります。これは、両方のコンポジット10よりも大きい最小の番号だからです。910+9+1=2010+4+1=15 次のエントリについては、それらは複合ではないため両方11と13も出ています。複合ではない12ため12+4+1=17です。複合ではない14ため14+4+1=19です。したがって、15のでシーケンスの次の用語である15複合材であり15+4+1=20、15+9+1=25及び15+10+1=26従って、全て各複合ありますa(3) = 15。 このシーケンスの最初の30の用語は次のとおりです。 4, 9, 10, 15, 16, 22, 28, 34, 35, 39, 40, 46, 52, 58, 64, 70, 75, 76, 82, 88, 94, …

6
括弧でくくられた中置に対する修正
Quylthulgは、Chris Presseyによる言語で、panfixと呼ばれるものを使用して中置表記法の問題を解決しようとします。 postfixと同様に、panfixは、デフォルトの演算子の優先順位をオーバーライドするために、括弧などの不可解な仕掛けを展開する必要はありません。同時に、パンフィックスは、インフィックスと同じ順序と方法で用語を指定することを可能にします。 接頭辞または接尾辞の曖昧さとともに、挿入記法の便利さをどのように取得しますか?もちろん、3つすべてを使用してください! =y=+*3*x*+1+= より正式には、letを+演算子、and aをb式にします。その後(a+b)、有効な(括弧で囲まれた)中置式であり、その式のパンフィックス表現はです+a+b+。ここで、並置は連結を表します。 あなたの目標は、パンフィックス文字列を取得し、それを完全に括弧で囲まれたインフィックスに変換することです: (y=((3*x)+1)) 簡単にするために、次の変更を行います。 演算子は2つの一意の文字のみで構成できます(いずれかを選択できますが、ここでは*andを使用します+)。 リテラルは1つだけで、別の個別の文字で構成されます(いずれかを選択できますが、ここではを使用します_)。 入力は整形式のパンフィックス式になります。 以下のために複雑、私たちは以下の変更を行います: 演算子は、1つだけでなく、任意の正数の文字で構成できます。 これは、文字列の残りの部分を見ることなく、演算子文字の特定の部分文字列がどのように分割されるかを必ずしも決定できないため、挑戦をより困難にします。 これは、@ user202729の好意によるチャレンジのリファレンス実装です。 テストケース format: input -> output +*+_*+_*+++_+*+_*+_*+++ -> ((_*+_)+(_+(_*+_))) **++*+***++_+_++_+*++*+***_*++*+*****_**_*_*** -> ((((_+_)+_)*++*+***_)*(_*(_*_))) ***_**_***_* -> ((_**_)*_) +_+_+ -> (_+_) *+*+++**+***+++++_*+*+++**+***+++++_*+*+++**+***+++++ -> (_*+*+++**+***+++++_) *++++*+*_*_*+*+++****+_++****+_++****++*+*+++_*+++ -> (((_*_)+*+(_++****+_))*+++_) +**+_*+_*+*_*+*_*+*_+*_+**+ -> (((_*+_)*_)+(_*(_+*_))) +**+++++_+++++_+++++*_*+*+_++++++_+++++_+++++++* -> (((_+++++_)*_)+*(_+(_+++++_))) +*+*+_+*+_+*+*_*+*_*+*+_+*+_+*+*+ -> (((_+*+_)*_)+(_*(_+*+_))) …

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