プログラミングパズルとコードゴルフ

プログラミング愛好家やコードゴルファーのためのQ&A

5
ASCIIアートで長い乗算を視覚化する
チャレンジ 標準入力からコンマで区切られた2つの整数を取得し、それら2つの整数の長い乗算の視覚化を標準出力に出力するプログラムを作成します。 例えば: 入力 14, 11 プログラム出力 14 x11 _____ 14 14 ______ 154 入力 -7, 20 プログラム出力 -7 x20 _____ 00 14 _____ -140 [-999、999]の範囲の入力と数値は常に正しいと仮定します 受賞基準 最短のコードが勝ちます!

4
任意のサイズのタイル張りの立方体を描く
ASCIIアートで、任意のサイズのタイルキューブを描画します。 3つの数字a、bおよびが与えられc、プログラムはa * b * cサイズのキューブを出力するはずです。 例 3 3 3 -> ____ ____ ____ /____/____/____/| /____/____/____/|| /____/____/____/||| |____|____|____|||/ |____|____|____||/ |____|____|____|/ 5 2 3 -> ____ ____ ____ ____ ____ /____/____/____/____/____/| /____/____/____/____/____/|| /____/____/____/____/____/||/ |____|____|____|____|____||/ |____|____|____|____|____|/ 4 6 5 -> ____ ____ ____ ____ /____/____/____/____/| /____/____/____/____/|| /____/____/____/____/||| /____/____/____/____/|||| /____/____/____/____/||||| |____|____|____|____|||||| |____|____|____|____|||||/ |____|____|____|____||||/ …

12
最も「ユニークな」単語を見つける
選択した言語を使用して、テキスト内で一意の文字の数が最も多い単語を識別することができる最短の機能/スクリプト/プログラムを作成します。 一意の文字には、UTF-8エンコーディングを使用した任意の個別の文字を含める必要があります。 同じ文字の大文字と小文字のバージョンは異なり、区別されます。 'a' != 'A' 単語は空白文字で区切られます。 「文字」は、単一のユニコード文字で表すことができる記号です。 テキストドキュメントはコードで読み込む必要があります。テキストのプリロード/ハードコーディングは許可されていません。 出力は単語であり、その後に一意の文字の数が続きます。 llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch - 18 2つの値を区切る文字が少なくとも1つある限り、2つの値の間の区切り文字/間隔は任意です。 最高のカウントを持つ複数の単語が存在する場合、そのカウントのすべての単語を1行の改行で区切って出力します。 超謝辞-16 偽板状枝-16 これはコードゴルフなので、最短のコードが勝ちます。 English.SEに関するこの回答は、私にこの挑戦を生み出すきっかけとなりました。この例では単語リストのみを使用していますが、テキストはすべて処理できる必要があります。
12 code-golf  word 

27
文字列から一意の要素を削除する
文字列内の一意の文字を見つけることは非常に一般的なユースケースのようであるため、この質問に思いつきました。しかし、それらを取り除きたい場合はどうでしょうか? 入力には小文字のアルファベットのみが含まれます。aからzの文字のみが使用されます。入力長は1〜1000文字です。 例: 入力:helloworld 出力:llool 目的:最短のコード が優先言語:TIOBE言語の上位20のいずれか
12 code-golf  string 

2
コードゴルフ:宇宙船の運命は?[浮動小数点バージョン]
この質問は、ASCIIアート版よりも少し難しいです。芸術はありません、そして今、あなたはいくつかの浮動小数点演算をすることができます! チャレンジ USS StackExchangeは、船上で天文学的な爆発が発生したときに、惑星cg-00DLEFの重力場を移動していました。船舶のプログラミング責任者として、cg-00DELFの太陽系で土地をcrash落させることを余儀なくされるかどうかを予測するために、船舶の軌道をシミュレートするのがあなたの仕事です。爆発中、船はひどく損傷を受けました。宇宙船の無料のDEEEPRAROM *は限られているため、できるだけ少ない文字でプログラムを作成する必要があります。 *動的に実行可能な電子的に消去可能なプログラマブルランダムアクセス読み取り専用メモリ シミュレーション ASCIIアート版にやや似ていますが、タイムステップのアイデアがあります。もう1つのバージョンでは、タイムステップは比較的長い時間でした。船は、1つのタイムステップで惑星の重力をはるかに超えて移動できました。ここで、時間ステップは、距離が大きくなるため、時間の単位がはるかに小さくなります。ただし、1つの大きな違いは、セルが存在しないことです。宇宙船の現在の位置と速度は、関係する重力とともに浮動小数点数になります。もう1つの変更点は、惑星のサイズがはるかに大きくなったことです。 シミュレーションには最大3つの惑星があります。3つすべてに特定の位置、半径、および重力があります。各惑星の重力は、惑星の中心に直接力を加えるベクトルです。このベクトルの強度を求める公式は(Gravity)/(Distance**2)、です。ここで、距離は、船から惑星の中心までの正確な距離です。これは、重力が到達できる場所に制限がないことを意味します。 特定の時間に、宇宙船には速度があります。これは、最後のタイムステップから現在までに移動した距離と角度です。船にも勢いがあります。現在のタイムステップと次のタイムステップの間で移動する距離は、その位置のすべての重力ベクトルに加えられた現在の速度の合計です。これが宇宙船の新しい速度になります。 各シミュレーションには、10000タイムステップの時間制限があります。宇宙船が惑星の内部を移動する場合(惑星の半径よりも惑星の中心に近い場合)、その惑星に衝突します。シミュレーションの終了までに宇宙船がどの惑星にも衝突しない場合、重力から脱出したと推定されます。船が完全に整列し、10001番目のタイムステップで1落しながら10000タイムステップの間軌道にとどまることはまずありません。 入力 入力は、STDINへの4行です。各行は、4つのコンマ区切りの数字で構成されています。数値の形式は次のとおりです。 ShipLocX,ShipLocY,ShipVelX,ShipVelY Planet1LocX,Planet1LocY,Planet1Gravity,Planet1Radius Planet2LocX,Planet2LocY,Planet2Gravity,Planet2Radius Planet3LocX,Planet3LocY,Planet3Gravity,Planet3Radius 惑星が3つより少ない場合、残りの線はすべての値に対してゼロで埋められます。入力例を次に示します。 60,0,0,10 0,0,4000,50 100,100,4000,50 0,0,0,0 これは、宇宙船が(60,0)に位置し、10ユニット/タイムステップの速度で「上/北」に直進していることを意味します。2つの惑星があり、1つは(0,0)に、もう1つは(100,100)にあります。どちらも重力が4000で半径が50です。これらはすべて整数ですが、常に整数とは限りません。 出力 出力は、宇宙船がland落したかどうかを伝えるSTDOUTへの1ワードです。船がcrash落した場合、印刷しますcrash。それ以外の場合は、印刷しますescape。上記の入力に対して予想される出力は次のとおりです。 crash 何が起こったのか疑問に思うかもしれません。以下は、宇宙船の詳細な飛行ログを含むPastebinの投稿です。数字は、人々がイベントを視覚化するのを助けるのがあまり得意ではないので、ここで何が起こったのでしょうか?北に移動した後、2番目の惑星の西にわずかに通過し、かろうじて行方不明になります。その後、惑星の北側を曲がり、2番目の惑星の東側に衝突します。 審査のためのいくつかのケース 60,0,10,-10 0,0,2000,50 100,100,1357.9,47.5 0,0,0,0 エスケープ(逆二乗則により、60単位離れている場合、2000はあまり重力ではありません) 0,0,0,0 100,100,20000,140 -50,-50,50,50 -100,-100,50,50 クラッシュ(最初の惑星は非常に大きく、非常に近い) 0,0,0,0 0,0,0,0 0,0,0,0 0,0,0,0 脱出(これはエッジケースです:惑星がなく、簡単な解釈は、宇宙船が惑星の真上にあることを示唆します) ルール、制限、および注意 これはコードゴルフです。標準コードのゴルフ規則が適用されます。プログラムは、印刷可能なASCII文字のみで記述する必要があります。外部データベースにはアクセスできません。任意の言語(この課題の解決に特化した言語以外)でエントリを作成できます。 伝送終了

1
おいしいものを作ろう![閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 5年前に閉鎖されました。 あなたの課題は、レシピとしてもプログラムとしても機能するChefプログラムを書くことです。レシピとしての有用性は厳密に求められます(チョコレートマスタードソースのグレープリーブのレシピは必要ありません)。プログラムとしてのユーティリティはより緩やかな要件であるため、何か面白いもの(たとえば、最初の数個の整数、または「ちょうど別のシェフ」、または「ちょうど別のシェフハッカー」、または「hello world」)を印刷するのに十分です。役立つ計算を行います(たとえば、2つの数値の合計を出力します)。投票ではこれを考慮に入れる必要があり、勝者はしばらくしてから正味の投票数が最も多いプログラムです。 (コード長はここでは重要ではありません。)

13
ASCIIプログレスバーを作成する
まあ、それはこの質問に似ていますが、少し違いがあります。プログレスバーの幅と実行される作業量を尋ねるプログラムを作成する必要があります。次に、次の機能を備えたプログレスバーを描画します。 幅は、プログレスバーの描画に使用する必要がある文字数を示します 進行状況は、0.1から1の間の浮動小数点値で示されます。 進行状況バーの最初と最後の文字は、他のすべての文字とは異なるものにする必要があります。たとえば、「[」と「]」 プログラムは、開始からどの程度の進捗があったかについて2つの異なる文字を使用する必要があります 進行状況バーの中央で、10進数+ "%"記号を使用して、どれだけの作業が行われたかを記述する必要があります。 150%または-5%の作業完了など、極端な入力を処理するためのボーナスポイント。 スコアリング文字数*(1ボーナスなしまたは0.75幅ボーナス) 有効な出力のいくつかの例 79 0.15 [|||||||||||| 15% ] 25 0.76 [##########76%#####.....] 39 -0.12 [ -12% ] 25 7.6 [##########760%#########]

26
ネスト解除リスト
内部にリストがネストされたリストを指定すると、ネストされたリストのアイテムがネスト解除されたリストを返します。 入力 リストには、最大で4階層のネストされたリストが含まれます。入力内のすべての0をヌルスペースとしてカウントします。 出力 各アイテムを個別に印刷します。出力をリストとして印刷しないでください。任意の種類の空白で各アイテムを区切ることができます。 事例 [[1, 0], [2, 0], [2, 3]] -> 1 2 2 3 [[[4, 5, 8]], [[5, 6, 20]], [[1, 20, 500]]] -> 4 5 8 5 6 20 1 20 500 [[[1, 0], [0, 0], [0, 0]], [[1, 0], [1, 2], [2, 0]], [[2, 0], …
12 code-golf 

11
言語の完全な構文を示す最短プログラム[終了]
閉じた。この質問には、詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善したいですか?詳細を追加し、この投稿を編集して問題を明確にします。 3年前に閉店しました。 チャレンジ ステートメント、式、演算子、予約語など、プログラミング言語の構文全体を示す最短のプログラムを作成します。 言語の文法(通常はEBNF)を使用し、そのすべてを使用するプログラムを作成します。 プログラムは特に便利なことをする必要はありませんが、それができればボーナスです:) ルール 言語が定義するすべてのタイプのステートメント、式、演算子、キーワードなど、言語のすべての構文を使用する必要があります。 言語に含まれる標準ライブラリを除き、依存関係なしで実行できる必要があります(ただし、標準ライブラリ全体を使用する必要はありません)。 使用した言語仕様へのリンクを含めます(たとえば、Python 2.7文法です)。
12 code-golf 

4
中置表記法から前置表記法への変換
次のように、括弧(())、指数(^)、除算(/)および乗算(*)、加算(+)および減算(-)を含むことができる算術式を指定します。 a ^ (2 / 3) * 9 * 3 - 4 * 6 プレフィックス表記で同じ式を出力します。 (- (* (* (^ a (/ 2 3)) 9) 3) (* 4 6)) 入力と出力のスペースはオプションです。すべての演算子は左結合であり、式のすべての数値は1桁の整数(つまり[0-9])であると仮定できます。 これはコードゴルフの課題であるため、最短のソリューションが優先されます。
12 code-golf  math 

16
片手で単語を見つける
「誇張された」は、通常のqwertyキーボードマップで左手に入力できる単語の例です。「独占」は右手の例です。 words一方で入力できる単語をUNIX ファイルで検索します。出力は2行である必要があります。そのような単語の左手用のスペースで区切られたリストの後に、右手用のリストが続きます。例えば a abaft abase abased abases abate abated abates abbess abbesses ... h hi hill hilly him hip hippo hippy ho hokum ... 左側の文字は次のとおりです。 qwertasdfgzxcvb 右側の文字は次のとおりです。 yuiophjklnm' 大文字は片手としてカウントされます。分音記号の付いた文字は両手とみなされるため、それらを含む単語は無視できます。
12 code-golf 

3
グラフ電卓を実装する
電卓に関する多くの質問がありました。ただし、グラフ電卓の実装が関与しているようには見えません。 チャレンジ STDINからの入力として複数の式を取り、それらをSTDOUTにグラフ化する完全なプログラムを作成します。入力の形式は次のとおりf1(x)=x^2-x-1です。があり、fその後に0〜9の数字(両端を含む)が続き(x)=、が続き、グラフ化する式が続きます。プログラムは、入力、グラフ、入力、グラフなどを取得できる必要があります。 これはコードゴルフです。 グラフのX軸の範囲は-5〜5で、解像度は1/2ユニットごとに少なくとも1ポイントである必要があります。Y軸の要件は同じです。これは、最新の計算機と比べて小さな範囲のように見えるかもしれませんが、これを増やすのはささいなことでしょう。グラフには+、整数の形の目盛りが付いた軸が描かれている必要があります。 式は通常の操作順序で評価する必要があります。これらの式には、垂直漸近線/未定義の領域はありません。変数は常にxです。同じ式番号で2つの式が入力された場合、最も古い式が消去され、新しい式に置き換えられます。空の数式はゼロに評価されるはずです。公式は常に1/2の倍数になるとは限らないので、最も近い1/2に丸める必要があります。 数式がグラフ化されるとき、その線は数式の数から形成される必要があります。線が軸と交差する場合、軸は上に描画される必要があります。2本の線が交差する場合、どちらが表示されるかは関係ありません。 入力例 f1(x)=x+1 出力 + 1 | 1 + 1 | 1 + 1 | 1 + 1 |1 + 1| +-+-+-+-+-+-+-+-+-+-+ 1 | 1 + 1 | 1 + 1 | 1 + 1 | 1 + | + 入力 f2(x)=(x^2)^0.25 出力 + …

1
(重力ベースの)ビリヤードボールタイプのコンピューターのシミュレーション
この機械 ビリヤードボールタイプのマシンは、記号\ _ /、大文字、小文字、スペース、および数字のみで構成されてい1ます。 \そして/ランプです。上から来るボールは、それぞれ右側または左側に偏向されます。両方のランプについて、ボールがどちらかの側から来る場合、ボールは下向きに偏向されます。 _論理要素です。それによって実行されるロジックは、コンピューターの最もビリヤードに似ていない部分です。最初に、左または右から来るボールは同じ方向に続きます。上から来るボールは停止します。次に、実行の終了後(以下のマシンの実行を参照)、その上を通過する/着地するボールの数が正の偶数である場合、1つのボールが要素の下部から解放されます。 スペースは何もしません。任意の方向から来るボールは、重力により真っ直ぐに落ちます。 小文字は入力です。すべての入力は、単一の1または0になります。 大文字は出力です。出力される数は、その場所にヒットしたビリヤードボールの数になります。 番号1は、その場所で追加のビリヤードボールをリリースします。論理1を表します。 以外のすべてのキャラクター \_/、あらゆる方向から来るボールを重力により真っ直ぐに落下させます。 ボールが結合、分割、衝突することはありません。入力、a _、またはa から解放された場合にのみ作成され1ます。彼らはまっすぐに倒れたときに破壊されます_。 サンプル機 1 a \_/ b \_/ \/ /\ / _ _ A B マシンには空白行はありませんが、_'を使用すると、空白行があるように見える場合があります。 マシンの実行 マシンは、レイヤーまたは行で実行されます。最上層のビリヤードボールの動きはすべて、2番目の層で何かが起こる前に実行されます。 この機械 ab \_A C 次のように実行されます。 最初aに、フォームの入力を求められますa:。その後、ユーザーは1または0を入力します(その後にEnterが続きます)。入力に対してこれを繰り返しますb。これで最初のレイヤーの終わりです。ユーザーが両方の入力に1を入力したと仮定します。 その後、最初のボール(からのパスを描くaに沿って行く)、\越えて、_にし、Aし、下のスポットに落ちますA。次に、2番目のボール(からb)のパスをトレースし_ます。これで第2層の終わりです。 さて、3番目のレイヤーの前に、_2つのボールがクロスしているので、1つのボールをリリースします。出力Aには1つのボールが交差しているため、が出力されますA:1。 3番目のレイヤーでは、最初のボール(から_)のパスをトレースしますC。2番目のボール(から落ちたA)もまっすぐ落ちます。 これで、4番目のレイヤーの前に、出力Cが1つのボールを通過したため、出力されますC:1。 4番目のレイヤーは空白なので、プログラムは終了します。 合計結果は次のようになります a:1 (the user entered the one) b:1 …

3
セッション保存クイン
この質問に触発されました。 ユーザーにデータの保存を促すプログラムを作成します。プログラムが終了したら、変更されたセッションデータを除き、プログラム自体を吐き出します。 次に、ユーザーは新しく生成されたプログラムを開き、以前のプログラムからデータを呼び出すことができます。 コマンド KEY VALUE:セッション変数KEYを設定しますVALUE *:すべてのデータを消去 ! KEY:削除 KEY ? KEY:クエリKEY(存在しない場合:何も出力せずに続行) それ以外の場合は、プログラムを終了します キーも値もスペースを含むことはできません。新しく生成されたプログラムのファイル名は、プログラムのバージョンを識別する必要があります。日付またはカウンターを使用できます。 インタラクションの例: name test store name = test data is now { name: test } 0 1 data is now { name: test, 0: 1 } ? name output: test ! 0 delete 0 data is now …
12 code-golf  quine 

10
クリエイティブプログラミング[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新することがありますので、上のトピックコードゴルフスタックExchange用。 8年前に閉鎖されました。 プログラミングからストーリーを作りましょう。JavaScriptの例: self.book = { "story": function() { var once = "upon", aTime = setTimeout(function() { // Code would continue... }, 1000) } }; self.book.story(); 規定: コンパイル前、コンパイル中、コンパイル後にエラーなしで実行する必要があります。 ストーリーには、文字列/名前ごとに最大2つの単語しか使用できません。 JavaScriptの例: var story = "Once upon a"; // Wrong (Using more than two words) var story = "Onceupona"; // …

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