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

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

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文字のみで記述する必要があります。外部データベースにはアクセスできません。任意の言語(この課題の解決に特化した言語以外)でエントリを作成できます。 伝送終了

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 

4
チェス騎士の最短経路
プログラムは、チェスの騎士がチェス盤の各マスに到達するのにかかる移動数を計算する必要があります。入力は、開始正方形の座標(水平座標と垂直座標、それぞれ0〜7を含む)を表す2つのスペースで区切られた整数になります。プログラムは、チェスナイトが各マスに到達するために必要な最小移動数を含む数値グリッドを出力する必要があります。 例 入力 0 0 出力 03232345 34123434 21432345 32323434 23234345 34343454 43434545 54545456 入力 3 1 出力 21232123 32303232 21232123 34121432 23232323 32323234 43434343 34343434 最短のコードが優先されます。
12 code-golf  chess 

7
今日(または他の日付)は何曜日ですか?
仕事 ユーザーが入力する日付の曜日名を計算するプログラムまたは関数を作成します。 入出力 入力は文字列ですYYYYMMDD。 入力値の例: 20110617:2011年6月17日 19040229:1904年2月29日 06661225:666年12月25日 00000101:1月1日、0 99991231:9999年12月31日 すべての入力が有効であるとみなすことができます。ゼロ年は有効であることに注意してください。 出力は、間の整数である0と6。各整数は曜日名を表します。この整数のように、どの整数が曜日名を表すかを自由に決定できます 0:月曜日 1:火曜日 2:水曜日 ... 6:日曜日 (順番に)またはこれ 0:月曜日 1:水曜日 2:日曜日 ... 6:土曜日 (順不同)。 テストケース 曜日出力の入力(この例では[0..6-> Monday..Sunday]が使用されます。) 20110617金曜日4 19500101日曜日6 22220202土曜日5 19000228水曜日2 19000301木曜日3 19450815水曜日2 19040229月曜日0 19040301火曜日1 17760704木曜日3 20000228月曜日0 20000229火曜日1 20000301水曜日2 20121223日曜日6 00000401土曜日5 66660606水曜日2 59161021土曜日5 制限 あなたはしてはならない使用どのように、タイムスタンプまたは日付に関連する機能/クラスの種類を/ ... DateにクラスJava/ JavaScript/ ActionScript、またはgetdateで機能PHP。 現在、多くの人々が使用しているグレゴリオ暦を使用する必要があります。 …
12 code-golf  date 

5
多項式補間
真の任意精度の有理数を使用して多項式補間を実行するプログラムを作成します。入力は次のようになります。 f(1)= 2/3 f(2)= 4/5 f(3)= 6/7 ... =符号の前後に空白が1つだけあると仮定することができます。すべての数値は小数または整数です。また、入力のすべての端数はすでに既約であると仮定することもできます。 入力が有効であり、f(x)でxが2倍になっていると仮定しても、エラーチェックは必要ありません。 出力はLaTeXと互換性のある形式である必要があり、出力されたLaTeXコードはここで与えられた出力と同じグラフィック表現を生成する必要があります。 f(x)= 123x ^ 2 + \ frac {45} {2} x + \ frac {7} {4} 端数は可能な限り減らす必要があります。のようなもの\frac{2}{4} は許可されていません。数値が整数の場合、分数を使用しないでください。 特別なルール: あなたのプログラムは... 12次までの多項式で機能する 合理的な入力のために1分未満で完了 計算全体を行う関数を使用しないでください 最小次数の多項式を出力します テストケース: 指定されたテストケースは、説明のためだけのものです。プログラムは、すべての正しい入力に対して正しい結果をもたらすはずです。 入力 f(1)= 2/3 f(2)= 4/5 f(3)= 6/7 出力 f(x)=-\ frac {4} {105} x ^ …

1
8パズルを解く
8パズルは、15Puzzle(またはSliding puzzle)の小さなバリエーションです。3x3ランダムな順序で配置された0〜8の数字(0は空白のタイルを示します)で埋められたグリッドがあります。あなたのタスクは、3x3グリッドを入力し、目標状態に到達するための最短の解決策(最小の移動)を表示することです。出力の最初の状態を含む各ボード状態を表示します。 最適なソリューションが複数ある場合がありますが、印刷する必要があります。 入力:(小さな例) 1 2 0 4 5 3 7 8 6 出力: 2 <- denotes minimum number of moves required 1 2 0 4 5 3 7 8 6 1 2 3 4 5 0 7 8 6 1 2 3 4 5 6 7 8 0 <- …

8
最大パスを見つける
正の二乗が与えられた場合、自然数はプログラムに沿って水平方向と垂直方向のパスを見つけ、それらに沿った数の合計が最大になるようにします。水平パスは、最後に、最初の列から進み、各ステップのいずれかによって、その列の位置を増加しなければなりません。縦パスは、最後に、最初の行から進み、各ステップのいずれかによって、その行の位置を増加しなければなりません。さらに、水平経路の行位置は、垂直経路の場合と同様に、同じままであるか、いずれかの方向に1つずつ変化します。 説明のために、以下が有効なパスである可能性があります。 次のパスは逆方向に進むため無効になります(一部の場所では同じ行に残ります)。 次のパスは、1つのステップで行の位置を複数変更するため、同様に無効になります。 注:ソリューションは許容可能な時間内に実行する必要があります。 入力 n 個のスペースで区切られた正の整数を持つ入力のn行は、標準入力で与えられます。2≤ N ≤40各行は改行で終了されます。数値は十分に小さいため、最大合計は32ビット符号付き整数に収まります。 出力 単一のスペースで区切られた水平および垂直パスの(その順序での)最大合計。 サンプル入力1 1 2 1 2 サンプル出力1 3 4 サンプル入力2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 1 1 1 1 1 1 …
12 code-golf 

8
クインチャレンジI
チャレンジ このタスクでは、整数N (-1e9 <= N <0 && 0 <N <= + 1e9)を入力するプログラムを作成し、T =(abs(N)%M + 1)を計算する必要があります。 Nは正であり、最初からT番目の文字を出力し、そうでない場合はソースの最後からT番目の文字を出力します。 Mは、ソースのバイト単位のサイズです。 例:ソースが次の場合:abcd efg/hi 入力: 2 出力: c 入力: -3 出力: g 入力: -9249678 出力: b 入力: -11 出力: i 制約 FILE操作を使用しないでください 任意の言語を使用できます それはすべての楽しみを台無しにするので、回避しようとするか、むしろ1バイトの提出を使用しないでください。 最短のソリューションが勝ちます! 編集:問題文が修正され、ランダムテストデータ(およびすべてのソリューションで同じデータ)を使用してソリューションを判断できるようになりました。したがって、ソリューションを更新してください(ご不便をおかけします)。
12 code-golf  quine 

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