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

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

30
Nの2乗を印刷
stdinから、または関数の引数として負でない整数Nを取り込むプログラムまたは関数を作成します。それは、それぞれが数NのN個のコピーで作られている中空のASCIIアートの正方形の文字列を印刷または返さなければなりません。 具体的には: Nがの場合、N 0のコピーは使用されないため、出力(または単一の末尾の改行のみ)がありません。 Nがの1場合、出力は次のとおりです。 1 Nが2次の場合: 22 22 Nが3次の場合: 333 3 3 333 Nが4次の場合: 4444 4 4 4 4 4444 Nが5次の場合: 55555 5 5 5 5 5 5 55555 パターンは6through まで続き9ます。 Nがの10場合、出力は次のとおりです。 10101010101010101010 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 …

8
伸縮性のヘビにキスをする
伸縮性のあるヘビは次のようになります。 <||=|||:)~ 伸縮部分|として知られる伸縮性蛇の垂直バー()の各個別のシーケンスは、その幅の2倍まで個別に拡張可能で、一度拡張されると交互にスラッシュ(、)で描画されます。/\ 上記の特定のヘビには、このような伸縮性のある部分が2つあり、4つの可能なポーズが与えられています。 <||=|||:)~ </\/\=|||:)~ <||=/\/\/\:)~ </\/\=/\/\/\:)~ 最小のストレッチポーズで伸びるヘビの一般的な形は、この正規表現で定義されます。 <(\|+=)*\|+:\)~ 次のように言葉で表現できます: <配列のいずれかの数字が続く|の接合と=、続いて標識:)~。 だから<|:)~and <||:)~と<|=|:)~and <|=|=||=|||||=||:)~は伸縮性のあるヘビですが<=:)~、<=|:)~and <||=:)~とand <|==||:)~はそうではありません。 伸縮性のあるヘビは、右ではなく左を向く場合もあり~(:|||=||>ます。フォームは同じで、ミラー化されています。 チャレンジ いくつかのスペースを挟んで、向かい合う2つの伸縮性のある蛇の1行の文字列を取り込むプログラムを作成します。両方のヘビは、最も伸びのないポーズになります(すべての垂直バー、スラッシュなし)。文字列は、右向きのヘビの尾で始まり、左向きのヘビの尾で終わります(オプションとして、末尾に改行もあると想定できます)。 たとえば、ヘビの間に5つのスペースがある入力の例を次に示します。 <|=||:)~.....~(:||||> .わかりやすくするために、実際のスペース文字の代わりにピリオド()を使用しています。 ヘビ間のゼロスペースも有効な入力です。 <|=||:)~~(:||||> ヘビは舌がこのように触れているときにキスをしていると言います。 あなたのプログラムは、(重複なし)ヘビはそれらの間の可能なスペースの最小数を有するように蛇の両方の伸縮性の部分のいくつかの組み合わせを拡張する必要がヘビが可能とキスに近いであるように、すなわち。 蛇の尾は両方とも固定されていますが、伸びている部分に応じて、頭と体は動くことができます-右向きのヘビは右、左向きのヘビは左です。 プログラムの出力は、蛇を可能な限りキスに近い形で示す単一行の文字列(オプションの末尾の改行)であり、伸びた部分の垂直バーの代わりにスラッシュを交互に描画します。 たとえば、<|=||:)~.....~(:||||>(上記から)の出力は次のようになります。 </\=||:)~~(:/\/\/\/\> これが唯一の解決策です。伸縮性のある部分の他の組み合わせを拡張すると、ヘビが重なり合うか、キスから遠ざかるからです。 可能なソリューションが複数ある場合、出力はいずれか1つになります。 たとえば、入力が <|=||:)~.....~(:|||=|> 出力は <|=/\/\:)~~(:/\/\/\=|> または </\=||:)~~(:/\/\/\=/\> ヘビにキスをすることは常に可能であるとは限らないことを忘れないでください、しかしあなたはまだそれらをできるだけ近くに近づける必要があります。 たとえば、入力が <||=||||:)~...~(:||> 出力は </\/\=||||:)~.~(:||> または <||=||||:)~.~(:/\/\> ヘビがすでにキスしている場合、出力は入力と同じになります。例えば <|=||:)~~(:||||> 一般に、伸縮性のある部分を延長すると蛇が重なる場合、出力は入力と同じになります。例えば <|||=|||:)~..~(:||||=|||||=||||||> …

10
リトルチャンドラーは悲しい。彼を元気づけるために彼に雲を引きます
リトルチャンドラーは悲しい。彼を元気づけるために彼に雲を引きます。 注:クラウドを描画しても、実際に彼を元気づけることはありません。 円は、3組として定義できます。(x,y,r)ここxで、デカルト平面上の円のx位置、デカルト平面上の円yのy位置、およびr円の半径です。xそしてy負でもよいです。r常にポジティブです。入力は、スペースで区切られた3タプルの形式の円のリストです。例えば: 3,1,1 3,2,1.5 1,2,0.7 0.9,1.2,1.2 1,0,0.8 3,1,1手段「に中心点を有する円3,11つの半径を有する。3,2,1.5手段」に中心点を有する円3,21.5半径を有します。 入力のこれらの円をすべてグラフに描画すると、次のようになります(わかりやすくするためにグリッド線とラベルを含めましたが、これらは必須ではありません)。 すべての円が凝集していることに注目してください。つまり、それらはすべて互いに重なり合っており、1つの大きなグループを形成し、残りの部分から分離された小さな円のグループはありません。入力は凝集性が保証されています。 ここで、これらの円によって形成される「境界線」の周りを移動する線を描き、他の線は一切ないとします。これは、すべての円によって形成されるシルエットの境界線を描くようなものです。結果のクラウドは次のようになります。 そのため、このクラウドは、境界を形成する入力内の円の円弧のみを描画することで形成され、単一の形状になります。言い換えると、クラウドは、別の円内にないアークを描くことによって形成されます。プログラムは、上記で説明した形式で入力を受け取り、結果のクラウドを表示する画像を出力します。雲の全体的な形状は正確でなければなりませんが、スケール、色、線の太さ、頂点の見え方はあなた次第です。クラウドが表示されている必要があるため、「このプログラムは白い背景に白い雲を描画する」、「このプログラムは無限に小さなスケールで雲を描画する」、「このプログラムは0の雲を描画する」また、境界線の色は塗りつぶしまたは背景の色と異なる必要があることに注意してください。 もう一つの例。入力: 1,4,2 5,2,1 3,1,1 3.5,2,1.2 3,3,0.7 1,2,0.7 出力: クラウドに「穴」がある場合は、穴も描画する必要があります。入力: 0,5,4 3,4,4 4,3,4 5,0,4 4,-3,4 3,-4,4 0,-5,4 -3,-4,4 -4,-3,4 -5,0,4 -4,3,4 -3,4,4 出力: 重要なルールは次のとおりです。プログラムは境界を形成する線のみを描画する必要があります。つまり、単純に円を完全に描画してから、白い塗りでわずかに小さい円を描画することはできません。このメソッドはまだ境界を形成しない線を描画するため、後でそれらを覆うだけです。ルールの目的は、「円を描いてから、白い塗りで円をもう一度描く」実装、またはそれに類似したものを防ぐことでした。答えは、実際に描画する前に描画する場所を実際に計算することです。 これはコードゴルフであるため、最短の文字数が優先されます。

30
アレックススタイルの追加
Alexの輝かしいLearn you for R for good goodに触発され、 Alexの「1つの真のRプログラム」を謙虚に再現しますが、ひねりを加えています。 アレックススタイルの加算はこのように機能します-90%の確率で与えられた2つの数値の合計を返し、10%の確率で最初の数値と2番目の数値+ 1を再帰的に加算します。つまり、潜在的に、追加が1つ以上オフになる場合があります。 チャレンジ 2つの整数を受け取り、定義どおりにAlex-addsする完全なプログラムまたは関数を作成します。言語に末尾再帰がない場合、プログラムはオーバーフローをスタックしないと仮定できます。(確率が同じである限り、再帰的に実装する必要はありません。) リファレンス実装(Groovy) int alexAdd(int a, int b) { int i = new Random().nextInt(11); if(i == 1) { return alexAdd(a,b+1); } else { return a + b; } } このフィドルをオンラインで試してください。 リーダーボード var QUESTION_ID=66522,OVERRIDE_USER=8478;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 s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function …

30
すべてのベースは私たちのものです(制限付き)
入力は必須ではなく、出力は「All your base are belong to us」にする必要があります。 制限事項 外部リソースはありません。 さらに、次のうち少なくとも2つ: コードでは、「a」、「b」、「t」、「u」、または「y」を使用できません(これを行うことができる場合、ゴルフスコアに-10のボーナス) コードのどの場合でも「l」、「o」、「s」、「e」、または「r」を使用することはできません(これを行うことができる場合、ゴルフスコアに-20のボーナス) コードのどの場合でも、「n」、「g」、「0」、「1」、または「2」を使用することはできません(これを行うことができる場合、ゴルフスコアにボーナス-30) たとえば、40文字でコードを処理し、ルール1と2を使用すると、ゴルフスコアは40-10-20 = 10文字になります。 最小のコードゴルフスコアが勝ちます。幸運を祈ります!

30
最短の自己識別プログラム(キインバリアント)を書く
入力がプログラムのソースコードに一致する場合は「true」の出力を生成し、入力がプログラムのソースコードに一致しない場合は「false」の出力を生成するプログラムを作成します。 この問題は、プログラムがプロセス内で独自のソースコードを何らかの方法で計算できる必要があるため、クインに関連していると説明できます。 これはコードゴルフです。標準ルールが適用されます。プログラムは、独自のソースコードのファイルなどの特別なファイルにアクセスしてはなりません。 編集:そのように選択した場合、true / falseはTrue / Falseまたは1/0に置き換えることができます。 例 プログラムのソースコードがの場合、bhiofvewoibh46948732));:/)4プログラムで実行する必要があることは次のとおりです。 入力(標準入力) bhiofvewoibh46948732));:/)4 出力(標準出力) true 入力 (Anything other than your source code) 出力 false

13
アメリカの大統領は誰でしたか?
チャレンジ 1789年4月30日から2019年8月21日までの1日を入力として受け取り、その日の米国大統領であった出力として戻るプログラムを作成します。 ノート 米国大統領のリスト、氏名の形式、大統領の在任期間については、以下を参照してください。 April 30, 1789 - March 4, 1797 George Washington March 4, 1797 - March 4, 1801 John Adams March 4, 1801 - March 4, 1809 Thomas Jefferson March 4, 1809 - March 4, 1817 James Madison March 4, 1817 - March 4, 1825 James Monroe March …

10
怒りのカモ
絵文字>:Uが何を表しているのか、誰もはっきりとはわかりませんが、多くの学者は、それが怒っているアヒルのように見えると信じています。そうだと仮定しましょう。 仕事 0から3までの整数nが与えられた場合、印刷またはリターン quack n = 0の場合、 >:U もし、N = 1、 U U > : U U > U U > : U U UUU n = 2の場合、または >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U …

30
ブラケットは完全に一致していますか?
大括弧のストリングを取り、そのストリングが完全に一致するかどうかを出力するプログラムまたは関数を作成する必要があります。プログラムは真実または偽の値を出力する必要があり、IOは任意の妥当な形式にすることができます。 ルールと定義: この課題のために、「括弧」は次の文字のいずれかです()[]{}<>。 次のように、開始ブラケットと終了ブラケットが正しい順序であり、その中に文字がない場合、一対のブラケットは「一致」とみなされます。 () []{} または、その中のすべてのサブ要素も一致する場合。 [()()()()] {<[]>} (()()) サブエレメントは、いくつかのレイヤーの深さにネストすることもできます。 [(){<><>[()]}<>()] <[{((()))}]> 次の場合にのみ、文字列は「完全一致」と見なされます。 すべての文字は角かっこです。 ブラケットの各ペアには正しい開始ブラケットと終了ブラケットがあり、正しい順序であり、 各ブラケットが一致します。 入力には印刷可能なASCIIのみが含まれると想定できます。 テストIO 以下は、真の値を返す必要のある入力です。 () [](){}<> (((()))) ({[<>]}) [{()<>()}[]] [([]{})<{[()<()>]}()>{}] そして、ここに偽の値を返すはずの出力があります: ( Has no closing ')' }{ Wrong order (<)> Each pair contains only half of a matched element (()()foobar) Contains invalid characters [({}<>)> …

2
真剣に、GolfScript、CJam、またはPyth?
少し前に、次の質問が尋ねられました:GolfScript、CJam、またはPyth? タイトルのみに基づいて、私はそれは非常に素晴らしい挑戦になると思いましたが、残念なことに、それはヒントを求める質問であることが判明しました。これが私が読みたかった挑戦です: ゴルフの言語は実世界では使用されていないと誰が言ったのですか?誰もが知っているように、コードの行ごとのバグの割合は、使用されているプログラミング言語に関係なく同じであるため、これらの言語のデバッグおよび保守コストを削減する明確な機会があります。あなたの会社はついに光を見て、Golfscript、CJam、Pythを使用して製品を開発することにしました。 残念ながら、2、3か月後、ハードドライブにはコードスニペットが散らばっており、どの言語がどの言語で書かれているのかさえわかりません(Perlを使用しているプログラマーもいます)。 CJam、Golfscript、Pythのどれがプログラムの記述言語であるかを検出するツールを作成する必要があります。状況は非常に重要です。任意の言語を使用できますが、短くしてください(データストレージは高価です。使用するバイトが多いほど、コストがかかります)。 全般 最短コード勝利 標準的な抜け穴など オンライン通訳を使用しないでください 関数またはプログラムを書くことができます evalを使用して独自の言語を検出できます 入力 入力は標準入力ストリームから、または文字列として取得されます 入力には、ASCII印刷可能文字と改行のみが含まれます 入力のサイズは最大256バイトです 出力 出力は出力ストリームに出力されるか、文字列/シンボルのシーケンスとして返されます 入力は間違いなく有効である場合Xの印刷、プログラム又は戻りXを、X ∈{CJam、Pyth、Golfscript} 注釈:「疑いなく」とは、言語の検出に一貫して失敗するダムアナライザーで答えることができるという意味ではありません。Pyth、私は期待していない単純なプログラムが認識される(ただし、ハードコード)。同じことがCJam(チートシート、例)とGolfscript(例)にも当てはまります。前のリンクは、各言語の仕様を指しています。ファジー/ベイジアンアプローチを使用する場合、「疑いのない」とは、高いレベルの信頼性を意味します(たとえば、分類で99%を獲得します)。 実際のテストスイートについては、以下を参照してください。 入力が複数の言語で有効な場合、検出された各言語を印刷/返却する必要があります。印刷するときは、複数の出力の間に区切り文字が必要です(スペース、改行、コンマなど)。 言語が試行される順序は重要ではありません ケースは気にしません(CJam、cjam、CJAM、SPAM)[1] 上記の言語がいずれも検出されない場合は、「Probably Perl」を印刷します。mbomb007からのこのコメントのおかげで、上記のケースではSeriously、4バイトのペナルティ(両方の文字列の差)に対して" "を出力することもできます。 [1]明確にするために、スパムは無効です 例 入力 "Crime predicted: -- Calling: 1--555- "30*{_5<{iAa*:mr}&}/ 出力(複数の戻り値の例) ["Golfscript", "Cjam"] 入力 3 出力(標準出力の例) golfscript cjam pyth 入力 if {} aazd 出力 …

30
使用せずにすべての印刷可能なASCII文字を印刷する
では、プログラミング言語お好みの、別の1出力、それぞれが95のプログラム、書き込み95個の印刷可能なASCII文字を プログラム内のどこにでも発生して、その文字なしを。 あなたの言語であった場合たとえば、Pythonの、文字を出力し、あなたのプログラムがPあるかもしれません print(chr(80)) PASCIIコード80を持っているためです。このプログラムはP、ソースコードに表示されないため有効です。ただし、小文字を出力するプログラムのp場合は print(chr(112)) それは、印刷を行いながら、ために無効になりp、pコードの中に存在しています。有効なプログラムは exec(chr(112)+'rint(chr(112))') これは印刷さpれpますが、含まれません。 あなたの目標は、あなたの95のプログラムのそれぞれをできるだけ短くすることです。あなたのスコアはすべてのプログラムの文字の長さの合計です。 何らかの理由で一部の文字に対して有効なプログラムを作成できない場合、それらの文字を「Did Not Program」またはDNPとしてマークし、それらのプログラムを完全に省略できます。これにより、構文的に厳密な言語が競争できるようになります。 勝利の答えは、最も低いスコアがある答えであるの最も少ないDNPの持っている回答のセットを。 ルール すべてのプログラムのソースコードには、印刷可能なASCIIに加えてタブと改行のみを含めることができます。これらはすべて1文字としてカウントされます。(異なるエンコーディングでは、存在しない文字を簡単に省略できるためです!) 注:このルールは必要なようですが、エンコードが異なる言語がたくさんあるので、それらの答えを見るのはクールだと思います。したがって、このルールを破ることができますが、あなたは好きな文字を使用できますが、あなたの答えは非競争的になり、勝つことはできません。 プログラムは、言語の標準的な規則に従って、実際の完全なプログラムでなければなりません。関数とREPLスニペットは許可されていません。 各プログラムの出力は、stdoutまたは使用している言語で受け入れられている代替に行く必要があります。 プログラムは入力を要求したり、入力を要求したりしないでください。(入力のプロンプトが言語固有のものである場合は、問題ありません。) プログラムは確定的で、実行時間が有限で、独立している必要があります。たとえば、他のプログラムとは別のフォルダーで実行されるかどうかは問題ではありません。 プログラムの出力は、対応する正確な印刷可能なASCII文字である必要があります。オプションで、後続の単一の改行が続きます。 95の(理想的には)すべてのプログラムに関する情報、およびスコアとDNPを必ず含めてください。あなたはリストする必要はありませんすべて「のような単純なパターンに従ったプログラムをprint(chr(80))、print(chr(81))、print(chr(82))...」しかし、あなたは彼らがすべて確認していることを確認します仕事とあなたのスコアが正しく追加されています。 参考までに、プログラムで出力する必要がある95の印刷可能なASCIIは次のとおりです。 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~

30
「ごまかす」ウマ
長い間潜んでいる、初めてのポスター。だからここに行きます。 quiineのWikipediaページでは、「それ自体のソースコードを見ると、quineは「ごまかし」と見なされます」と書かれています。あなたの仕事は、独自のソースコードを読み取るこれらの「不正行為」の1つを作成することです。 これはcode-golfなので、バイト単位の最短コード(各言語で)が勝ちます。つまり、5バイトのPythスクリプトは21バイトのPythonスクリプトに勝るものではありませんが、15バイトのPythonスクリプトには勝っています。 ファイルI / Oを使用してソースコードを読み取る必要があるため、公式のWikipediaページから取得した次のJavaScriptコードは無効です。 function a() { document.write(a, "a()"); } a() ディスク上のファイルのソースコードにアクセスする必要があります。 ファイル名を指定することはできません。ファイル名自体を検出する必要があります。 みんなクリア?行け!
56 code-golf  quine 

9
温かいウェルカムシークレットハットを描く
Winter Bash 2014は盛り上がりを見せており、私たち全員が帽子を愛していませんか?特に秘密の帽子! それでは、秘密の帽子の1つを描いてみませんか? 挑戦 あなたの仕事は、選択した言語で、このページに表示されているとおりの正確な構造を持つ、ウォームウェルカムハットを比例して描くことです。 いつものように、ベクターまたはラスターグラフィックスを使用して、帽子をファイルまたは画面にレンダリングできます。出力をラスタライズする場合、画像のサイズは400x400ピクセル以上である必要があります。 さらに、帽子の実際の内容(画像の色付き部分の境界矩形の領域)は、出力画像の40%以上をカバーする必要があります。 仕様書 以下の画像は、帽子のさまざまな寸法を示しています。ピクセルなど、すべての寸法は単位内にあります。画像内のすべての境界線の半径は、13単位の半径で描画されます。 色: 星と円形リングの赤-rgb(255、28、34) 円の中の黄色-rgb(255、202、87) 最軽量グレー-rgb(88、88、92) 最も暗い灰色-rgb(31、26、26) ミドルグレー-rgb(64、64、64) 得点 これはコードゴルフなので、最短の回答(バイト単位)が勝ちです。 警告の言葉として、既存の圧縮の使用(圧縮GIFの埋め込みなど)は、いくつかの標準的な抜け穴に該当します。

30
「bzzt」ゲームをプレイする
勝者:AditsuのCJam回答!なんと25バイト!いいね! 引き続き回答を送信できますが、勝つことはできません。後世のために保管された元の投稿: 「Bzzt」ゲームは、数を数える必要があるゲームです(この場合は500)。ただし、数値に3が含まれている場合、または3で割り切れる場合は、その数値を言うことはありません。代わりに、「Bzzt」と言います。 ルール: 数字をハードコーディングすることはできません。 数は、以下の要件のうち少なくとも1つを満たす必要があります。 3で割り切れる 数字には3が含まれています 一部のタイプの区切り文字は必須です(12bzzt14はカウントしません) スコアはバイト単位で測定されます。 1または0(選択)から開始して、正確に500までカウントする必要があります。 数値は出力する必要がありますが、その方法は関係ありません(たとえば、stdout、テキストファイルへの書き込みなど)。 0は3で割り切れるか、割り切れません。選んでいいですよ。 数値を一度に1つずつ(たとえば、出力1、次に2、次にbzzt、次に4など)または一度にすべて出力できます(たとえば、出力1 2 bzzt 4 5)。 文字3を単語「bzzt」に置き換える必要があります。これは大文字と小文字を区別しません(bZzt、Bzzt、bzztはすべて大丈夫です)。 これはコードゴルフの挑戦なので、最短のコードが勝ちます。 このコンテストは2014年6月30日(投稿から7日)で終了します。
56 code-golf 

30
100万未満の素数のリスト
これは私の最初のコードゴルフの質問であり、非常に簡単な質問です。コミュニティガイドラインに違反した可能性がある場合は、事前に謝罪します。 タスクは、100万未満のすべての素数を昇順で印刷することです。出力形式は、出力の行ごとに1つの数字にする必要があります。 目的は、ほとんどのコードゴルフの提出と同様に、コードサイズを最小限にすることです。ランタイムの最適化もボーナスですが、副次的な目的です。

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