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

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

11
n個の奇妙な数字を印刷する
奇妙な数とは、適切な約数の合計が数自体より大きく、適切な約数のサブセットがその数に加算されない数です。 例: 70は、その適切な除数(1、2、5、7、10、14、および35)の合計が70を超える74であり、これらの数値の合計が70にならないため、奇妙な数字です。 18は、適切な除数(1、2、3、4、6、9)の合計が25であり、18より大きいが、3、6、および9の合計が18であるため、奇妙な数字ではありません。 あなたのタスクは、std-inで任意の数nを入力し、計算してファイルに出力するか、改行区切りで最初のn個の奇妙な数字をstd-outする最も短いプログラムを書くことです。回答のハードコーディングは許可されていません(最初にこれを指定しなかったため申し訳ありません)。 他の例については、次のページを参照してください:http : //mathworld.wolfram.com/WeirdNumber.html
12 code-golf 

10
コンマで区切られた範囲のソートされたリストへの英数字の文字列
ソートされていない英数字の文字列が与えられた場合、例えば ABC321STPpJqZZr0 出力A「」文字範囲ので区切らリストは、(ケースを無視して重複を削除、ASCII値でソートすなわち大文字と数字のみ出力)は、たとえば、 0-3, A-C, J, P-T, Z ルール プログラムの長さは、通常どおり基本スコアです。 上記の例をプログラム内で初期化(ハードコード)する必要がありますが、プログラムの長さからその例の長さを割り引くことができます。たとえば、char* s="ABC321STPpJqZZr0";16文字を割り引くことができます。 ボーナス(+50バウンティ) これは今日の同僚が実際に直面した問題であり、Tcl 8.0.5(古いバージョンであり、最新のTclビルトインの多くを欠いている)で書く必要があるため、最短のTcl 8.0を書いた人に50ポイントを授与します.5ソリューション、Tcl 8.0.5に少なくとも2つの有効な提出がある場合。
12 code-golf  string 

24
数値の立方根を計算する
このゴルフの目標は、入力として与えられた数値の立方根を計算して出力するプログラムまたは関数を作成することです。 ルール: 外部リソースなし 組み込みのキューブルート関数は使用しません。 数値を累乗する(平方根、4番目の根などを含む)メソッド/演算子を使用しません。 関数/プログラムは、入力として浮動小数点数と負数を受け入れられる必要があります。 立方根が浮動小数点数である場合は、小数点以下4桁に丸めます。 これはコードゴルフで、バイト単位の最短コードが勝ちです。 テストケース: 27 --> 3 64 --> 4 1 --> 1 18.609625 --> 2.65 3652264 --> 154 0.001 --> 0.1 7 --> 1.9129 上記のすべてのテストケースを使用して-27 --> -3、負の数(、-64 --> -4...)をテストできます。
12 code-golf  math 

2
回路図を解釈する
あなたの課題は、論理ゲートを備えた回路図を解釈することです。 論理ゲート(実際にこれらが何をするかを知る必要はありません/このチャレンジを完了するには): およびゲート: a またはゲート: o ナンドゲート: A また、ゲート: O XORゲート: x xnorゲート: X ゲートではない: ~ 最後のゲートを除く各ゲートには2つの入力があります。入力は.、ゲートを中心とした3 x 3の正方形の左上隅と左下隅のaからです。ないため、入力はその左側に直接あります。出力は.、右側に直接あります。 ワイヤは -|\/.= - 右に1本、左に1本の2本のワイヤに接触します。 c-c | 2本のワイヤに接続します。1本は上、もう1本は下です。 c | c /そして\次のように動作します: c c \ / c c . 周囲のすべてのワイヤに接触します: ccc c.c ccc =特別です; 隣接するワイヤを接続します: -=- 2本のワイヤを接続します。以下では \|/ -=- /|\ 反対側の各ワイヤは相互に接続されていますが、他のワイヤは接続されていません(これは、それとは異なるところです.)。 電流が流れるためには、2本のワイヤが両方とも他方に接続されている必要があるため|-、電流は流れません。 …

30
縦書きの単語を含む文字列を印刷する
タスクは、ASCII文字の入力文字列を取得し、文字列をスペースで区切られた一連の垂直ワードとして出力することです。以下に例を示します。 与えられた文字列: Hello, World! My name is Foo. 出力は次のようになります。 H W M n i F e o y a s o l r m o l l e . o d , ! プログラムが端末をラップアラウンドする必要がある文字列を正しく処理する場合、10文字のボーナスポイントが付与されます。これは80文字に設定されます。 あなたのプログラムが逆もできるなら50ポイント!

4
ManufactoriaのMod 7
シンプルなManufactoriaチャレンジ。7を法とする入力を計算します。入力はビッグエンディアンバイナリ(青= 1、赤= 0)になります。出力は同じ形式である必要があります。 テストケースが提供されます。最小の部品数が優先されます。 http://pleasingfungus.com/Manufactoria/?ctm=Mod7;Input:_binary_number_big_endian._Output:_that_binary_number_mod_7;bbb:|brrr:b|brrrr:br|bb:bb|bbrrb:brr|brrrrb:brb|bbrb:bbr; 13; 3; 1 ; (入力mod 7が0の場合、何も出力しません。)

5
ハーディ・ラマヌジャン数の一般化
1729は、ハーディ–ラマヌジャン数として知られ、2つの方法で正の整数の2つの立方体の合計として表現できる最小の正の整数です(12^3+1^3=10^3+9^3=1729)。n(選択した言語にとって自然な形式の入力として)整数が与えられた場合n、2つの一意の方法で2のべき乗した正の整数の和として表現できる最小の正の整数を見つけます。外部ソースを使用しません。最も少ないキャラクターが勝ちます。 これは実際にはの未解決の問題であることに注意してくださいn>4。これらの数値については、プログラムを検索で永久に実行するか、試してみてください!無限の時間とリソースが与えられた場合に、プログラムが問題を解決するようにします。

5
シェルスクリプトのサブセットを実装する
このサイトには、インタープリタータグでのさまざまな言語の実装に関連する多くの問題がありました。ただし、実際にはそれらはすべて、誰も使用しない難解な言語でした。ここのユーザーのほとんどがおそらく既に知っている実用的な言語の通訳を作成する時間です。はい、タイトルの読みに問題がある場合(あなたが持っているのではない)のシェルスクリプトです。(はい、GolfScriptやBefungeなどの言語がすべてを獲得するのにうんざりしているので、私は意図的にこの挑戦をしました。そのため、より実用的なプログラミング言語が勝つ可能性が高い場合に挑戦をしました) ただし、シェルスクリプトは比較的大きな言語であるため、実装を求めません。代わりに、シェルスクリプト機能の小さなサブセットを作成します。 私が決めたサブセットは次のサブセットです。 プログラムの実行(ただし、単一引用符が許可されている場合でも、プログラムには文字のみが含まれます) プログラム引数 単一引用符(空白を含む印刷可能なASCII文字を受け入れ、単一引用符を除く) 引用符で囲まれていない文字列(ASCII文字、数字、ダッシュを許可) パイプ 空のステートメント 改行で区切られた複数のステートメント 末尾/先頭/複数のスペース このタスクでは、STDINから入力を読み取り、要求されたすべてのコマンドを実行する必要があります。POSIX互換のオペレーティングシステムを安全に想定できるため、Windowsなどの移植性は必要ありません。他のプログラムにパイプされていないプログラムは、STDINから読み取らないと安全に想定できます。コマンドが存在すると仮定しても安全です。他に何も使用されないと想定しても安全です。何らかの安全な仮定が破られていれば、何でもできます。最大15個の引数と512文字未満の行を安全に想定できます(明示的なメモリ割り当てなどが必要な場合-Cがまだ小さい場合でも、Cで勝つ可能性はほとんどありません)。ファイル記述子をクリーンアップする必要はありません。 すべての行を受信した後、またはSTDINが終了した後でも、いつでもプログラムを実行できます。必要なアプローチを選択してください。 シェルをテストできるシンプルなテストケース(3番目のコマンドの後に続く空白に注意してください): echo hello world printf '%08X\n' 1234567890 'echo' 'Hello, world!' echo heeeeeeelllo | sed 's/\(.\)\1\+/\1/g' yes|head -3 echo '\\' echo 'foo bar baz' | sed 's/bar/BAR/' | sed 's/baz/zap/' 上記のプログラムは、次の結果を出力するはずです。 hello world 499602D2 Hello, world! helo y …

8
スティックをペイントするにはどれくらい時間がかかりますか?
(このMath.SE問題に基づいて、グラフィックも提供します) 私はこのように見える棒を持っています: 私はそれをちょっとこのように見せたいです: 私は専門の画家ではありませんが、このような野心的なDIYプロジェクトを始める前に、頭の中にいないことを確認したいと思います。 あなたのプログラムは、このスティックをペイントするのにいくつのステップが必要かを教えてくれるはずです。各ステップでは、前のペイント層を覆う無地の連続領域をペイントします。上記の例では、左半分を青、右半分を赤、そして2つの別々の緑の領域を合計4ステップでペイントできます(緑は連続的にペイントされません)。 これはASCII形式です。 ------ bbb--- bbbrrr bgbrrr bgbrgr このスティックをペイントして同じ結果を得るには、いくつかの異なる方法があります。ただし、時間の見積もりにのみ興味があり、これは4つのステップです。 ゴール プログラムは、指定された配色でスティックをペイントするために必要な最小ステップ数を出力する必要があります。ペイントスキームは文字列の形式になり、出力は数字になります。これはコードゴルフです。最短のプログラムが勝ちます。 入力 プログラムは、文字列の形でスティックの配色を受け取ります。一意の文字(大文字と小文字が区別されます)はそれぞれ、一意の色を表します。 YRYGR grG GyRyGyG pbgbrgrp hyghgy 出力 これらの数値は、スティックをペイントするのに必要な最小ステップ数です。 4 3 4 5 4 説明 これが私が上記の数字に到達した方法です。プログラムはこれを出力する必要はありません: ----- YYY-- YRY-- YRYG- YRYGR --- g-- gr- grG ------- GGGGGGG GyyyGGG GyRyGGG GyRyGyG -------- pppppppp pbbbpppp pbbbrrrp pbgbrrrp pbgbrgrp …
12 code-golf  math 

12
数値文字列を縮小する
文字列を考える1と、2いくつかのコードを記述し、任意の長さの(である必要はありません機能を計算するにはどのように多くのステップ、それはこの基準以下、最終形態に文字列を縮小する必要がないということはもう、すべてがうまくなります): 文字列がの場合112112、これは次のように1、2、1、2を印刷する必要があることを意味します 1112。もう一度操作を実行すると、1と2を印刷する必要があります12。次に、1を2つ印刷して、を取得し2ます。この文字列は今後変更されないため、これは最終的な形式です。3最終フォームに到達するために3つのステップが必要だったため、コードが出力されます。 その他の規則 文字列の長さが不均等な場合、最後の数字はそのまま残ります。 これ以上変更できない文字列(など222222)はすべて最終形式と見なされます。 外部ソースは使用できません。 コードは1およびのすべての文字列で動作する必要があり2ます。 コードゴルフなので、最短のコードが優先されます。 コードはすべてのステップを印刷する必要があります。 すべての入力方法で問題ありません。 例 Input >> 122122122121212212 Your code has to print: 211222111111222 11222111222 122111222 2111222 111222 1222 222 Steps:7 (you can omit the "Steps") ---- ---- ---- ---- Input >> 22222221 Your code has to print: 22222211 2222221 2 ---- ---- …
12 code-golf 

1
日の出と日の入り
私は少しロマンチックです。私たちがいる場所で日の出と日の入りを見るために妻を連れ出すのが大好きです。この演習のために、私がたまたま日付や緯度、経度に関係なく、日没または日の出の時間を教えてくれるコードは持っていないとしましょう。 あなたのタスク、コーダーは、10進数の緯度と経度(N度とW度で取得されるため、SとE度は負と見なされます)とYYYY-MM-DD形式の日付( 2000年1月1日以降)、日の出と日の入りのために24時間形式で2回吐き出します。 例:オーストラリアのシドニーでの今日 riseset -33.87 -151.2 2013-12-27 05:45 20:09 ボーナス:高度を考慮できる場合は-100、夏時間を考慮できる場合は-100 コードは、緯度と経度に基づいて入力で指定された関連するタイムゾーン、またはクライアントマシンのタイムゾーンで時間を吐き出さなければなりません。
12 code-golf  math 

21
リストの個別の要素を頻度で降順に並べ替えます
リストまたは配列を受け取り、頻度の降順でソートされた個別の要素のリストを返す関数を作成します。 例: 与えられた: ["John","Doe","Dick","Harry","Harry","Doe","Doe","Harry","Doe","John"] 期待される戻り値: ["Doe","Harry","John","Dick"]
12 code-golf 

23
GolfScriptの改良バージョン[終了]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 4年前に閉鎖されました。 私は、もっと多くのことができるより短いプログラムのために、改善されたGolfScriptを書くつもりです。これは挑戦ではありません。それは私がすべきことについてのフィードバックとヒントのリクエストです。(タグを参照) これがコミュニティWikiかどうかはわかりません。もしそうだと思うなら、モデレーターにそれを変換するようにフラグを立ててください:) この言語は、GolfScriptと非常によく似ています。まだRubyで書かれています。ただし、いくつかの違いがあります。 `文字列の区切り文字として使用します。これは一般的な文字ではないため、エスケープの必要は少なくなります。(他のキャラクターは、その機能を置き換えることができます#(詳細は後ほど))。\`バックティック\\をエスケープする、バックスラッシュをエスケープする、他のエスケープシーケンスはありません。改行が必要な場合は、文字列に実際のリテラル改行を挿入するだけです。 RationalGolfScriptの主な欠陥の1つである任意精度の浮動小数点にRubyを使用する。 型を他の型に変換する機能。たとえば、ブロックを文字列に変換できます。 正規表現。おそらくで作成されました"..."。オペレーターもそれらに対して過負荷になります。たとえば、"\W"~{`Invalid: non-word character`}{`OK`}if。ブロックなどの変数からプッシュされると、自動的に実行されます。 ファイルおよび日付オブジェクト。GolfScriptでは不可能だったより多くのことを行います。これらにはリテラルはありませんが、それらを初期化するための関数`file.txt`flがあります(ファイル作成関数の名前は変更される場合があります)。 ハッシュかもしれませんが、それについてはわかりません。したほうがいい? さらに機能するヘルパー関数。たとえば、`http://example.com`netネットワークアクセスの場合(ここでも、net演算子の名前を変更できます)。rb文字列をRubyコードとして実行します。これらはさらに多くあります。提案を歓迎します。 コメントはありませんので、#他のことに使用できます。コメントが必要な場合は、問題`comment here`;なく機能します。(おそらく関数#を置き換えることができ`ます) 関数を追加するのがはるかに簡単になるように完全に書き直されます。基本的に、コードはより読みやすくなります。(GolfScriptのソースを見ましたか?:/) Github上にあるため、共同で作業できます。私はMITか何かの下でそれを認可します。 最終的な改行がないため、チートなクインが機能します:P そして、私はこれらを最も劇的で有用な変更だと思うので、これらを区別しています(おそらく浮動小数点を追加することを除く): 多くのRuby関数が組み込まれています。例えば、shuffle(略称されてもよいsf)(以前にかかった9文字)、 tr(以前は14文字)、 sample(sm予め.,rand=)、 flatten(fl以前???)、等 レブムのようにドロドロになります。たとえば~:a0<{0a-}aIF、~:$0<{0$-}$if(sort関数を上書きする)代わりに(文字変数名を使用して)できるようになりました。(ここからの例)。この方法では、大文字と小文字が区別されず、変数名に数字を使用できないことに注意してください。これはゴルフの言語なので、私の意見では大丈夫です:P デバッグが行われます。配列区切り文字、要素区切り文字などを指定するフラグ、数値出力(有理数、浮動小数点数、または整数?)、命令を1つずつステップ実行し、プログラムを実行する代わりに各トークンをトークン化して出力する機能を追加します。等 だから、私の質問は次のとおりです。改善するものは何ですか?何を追加すべきだと思いますか? コーディングを始める前に、これに関する他のアイデアはありますか?

13
Befungeでのゴルフのヒント
Befungeでゴルフをするための一般的なヒントは何ですか?私は、少なくともBefungeに特有のゴルフ問題全般のコーディングに適用できるアイデアを探しています(たとえば、「コメントの削除」は答えではありません)。回答ごとに1つのヒントを投稿してください。

7
連結されたプログラム+出力が95個の印刷可能なASCII文字の順列である最短プログラム
可能な限り短く(バイトカウントで測定)、入力を受け取らず、コメントを含まず、連結されたプログラム+出力が正確に95文字の長さで、すべての印刷可能なASCII文字を含むような文字列/シーケンスを出力するプログラムを作成します一度だけ、すなわちプログラム+出力はASCIIコードの32から126と95文字の順列であります: !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 同点の場合、勝者は(95文字の)連結されたプログラム+出力が、レーベンシュタイン編集距離(つまり、1文字の削除、挿入、またはASCII順にするために必要な置換)。
12 code-golf 

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