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

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

7
範囲パラメータの回復
説明 すべての要素が最も近い整数に切り捨てられた範囲関数の結果が与えられます。あなたの目標は、元のリストを回復することです。 たとえば、次の関数(Python3)は、プログラムの入力を生成します。 from numpy import arange, floor def floored_range(A, B, C): return list(floor(arange(A, B, C))) プログラムの出力は、元のデータの有効な推測である必要があります。ここで、有効な推測とは、フロア化されたときに入力と正確に一致し、範囲関数の可能な出力でなければならないことを意味します(つまり、グラフ化された場合、完全に直線を形成する必要があります)。 例 Input: [1,2,3,4] Output: [1,2,3,4] Input: [1,2,3,4] Output: [1.9,2.7,3.5,4.3] Input: [1,2,3,4,5,5] Output: [1.9,2.7,3.5,4.3,5.1,5.9] Input: [1,1,2,2,3,3,4,4] Output: [1,1.5,2,2.5,3,3.5,4,4.5] Input: [1,1,2,3,3,4] Output: [1,1.7,2.4,3.1,3.8,4.5] Input: [56, 54, 52, 50, 48, 45, 43, 41, 39, 37, 35, …
11 code-golf 

4
採石場のタイムラプスを掘る
建築物のクールなタイムラプスや他の大規模な作業を数分で見るのが好きですか?ここで作りましょう。 採石場を掘る掘削機を見ながら、毎日写真を撮って全体の進捗状況を確認します。そして、あなたの仕事はこのプロセスを見せることです! 採石場は、その最初の層の幅によって定義されます。 掘削機は、1日で掘る能力によって定義されます。 入力 採石場の幅。整数、常に1以上。 掘削機の掘削速度。整数、常に1以上。 出力 毎日の採石場の掘削の進捗。平らな手つかずの地面から始まり、完成した採石場で終わりました。 ルール 最終日には、掘削機の能力よりも掘るユニットが少なくなる可能性があります。過剰な作業はどこにも使用されないため、完全に掘られた採石場を出力するだけです。 すべての日の進行状況が一度に出力に存在する必要があります。出力の前日の進行状況をクリアまたは上書きすることはできません。 毎日の出力の末尾および先頭の改行は、妥当な数であれば受け入れられます。 これはcode-golfなので、コードをできるだけコンパクトにします。 明確化 作業は平らな地面から始まります。表示される地面の長さは、採石場の幅+ 2です。したがって、採石場の両側には常に1つのアンダースコア文字があります。 __________ 掘られた採石場は均等な幅でこのように見えます: _ _ \ / \ / \ / \/ そして、このような奇数幅 _ _ \ / \ / \ / V 採石場の進捗状況の例を次に示します。 _ _______ V dug 1 unit _ ______ \/ dug 2 …

2
私の番号の隣人を見つける
入力は、近傍情報を含むi行で構成されます。各I 番目の行は、の隣人表す、4つの値が含まれている私に北、東、南と西はそれぞれ、方向を。したがって、各値は、行1から開始して、i 番目の行の指定された方向の隣接を表し、最大65,535行になります。0値は、その方向への隣人を示していません。 たとえば、最初の行が「0 2 3 10」の場合、i隣人には3つの隣人がいることを意味します。北に1人、東に2人、南に3人、西に10人です。 北西に最も近い値から始めて、近隣の配列を出力する必要があります。各ネイバーは、他のネイバーに対する相対的な位置に1回だけ表示されます。いくつかの例を見てみましょう。 入力: 0 0 0 0 隣人なし(空の場合)、出力: 1 入力: 0 2 0 0 0 0 0 1 1には東に隣接2があります。2には西に隣接1があります 出力: 1 2 入力: 0 2 0 0 0 0 3 1 2 0 0 0 1には東に隣接2があります。2には、西に隣接1、南に3があります。3は北に隣人2がいます 出力: 1 2 3 入力: 2 0 0 …

4
Base Piの整数
バックグラウンド: Pi(π)は超越数であるため、終了しない10進表現を持ちます。同様に、他の整数ベースで記述された場合、表現は終了しません。しかし、baseで記述した場合はどうなりπますか? 10進数の数字は10の累乗を表します。 π = 3.14… = (3 * 10^0) + (1 * 10^-1) + (4 * 10^-2) + … したがって、base πでは、数字は次のべき乗を表しますπ。 π = 10 = (1 * π^1) + (0 * π^0) この新しいベースでは、整数は終了しない表現になりました。したがって、10進数で10は次のようになります。 10 => 100.01022… = (1 * π^2) + (0 * π^1) + (0 * π^0) + …

20
月の2点間の距離
月(lat1, lon1)と上の2つのポイントの緯度/経度を指定して、haversineの式と同じ結果を与える式を(lat2, lon2)使用して、2つのポイント間の距離をキロメートルで計算します。 入力 lat1, lon1, lat2, lon2度(角度)の4つの整数値または ϕ1, λ1, ϕ2, λ2ラジアン単位の4つの10進数値。 出力 2つのポイント間の距離(キロメートル単位、精度または丸められた整数)。 ハーバーシン式 どこ r は球体の半径です(月の半径が1737 kmであると仮定)、 ϕ1 ラジアン単位のポイント1の緯度 ϕ2 ラジアン単位のポイント2の緯度 λ1 ラジアン単位のポイント1の経度 λ2 ラジアン単位のポイント2の経度 d 2点間の循環距離 (ソース:https : //en.wikipedia.org/wiki/Haversine_formula) 他の可能な式 d = r * acos(sin ϕ1 sin ϕ2 + cos ϕ1 cos ϕ2 cos(λ2 - λ1)) @milesの式。 …

3
クレイジーだが合理的な基盤
ベース10、ベース2、ベース36、さらにはベース-10に基づいて多くの課題がありますが、他のすべての合理的なベースはどうでしょうか? 仕事 基数10の整数と有理数基数を指定すると、その基数の整数を(配列、文字列などとして)返します。 処理する 合理的なベースを想像するのは難しいので、Exploding Dotsを使用して視覚化しましょう。 ベース3で17を表すこのアニメーションを検討してください。 各ドットは単位を表し、ボックスは数字を表します。右端のボックスは自分の場所、中央のボックスは3 ^ 1の場所、左端のボックスは3 ^ 2の場所です。 私たちは自分の場所に17個の点から始めることができます。ただし、これは3を基数としているため、1の場所は3未満でなければなりません。したがって、3つのドットを「爆発」させ、左側のボックスにドットを作成します。爆発可能なドットのない安定した位置になるまでこれを繰り返します(つまり、同じボックスに3つのドット)。 したがって、基数10の17は基数3の122です。 分数ベースは、いくつかのドットを複数のドットに分解することに似ています。ベース3/2は3ドットを爆発させて2を作成します。 ベース3/2で17を表現: したがって、基数10の17は基数3/2の21012です。 負の基底も同様に機能しますが、記号を追跡する必要があります(-1に等しいいわゆるアンチドットを使用します。白丸で表されます)。 ベース-3で17を表現: すべてのボックスの記号を同じにするために、余分な爆発があります(ゼロを無視して)。 したがって、基数10の17は基数-3の212です。 上記の2つのケースの組み合わせでは、負の有理数ベースも同様に機能します。 ルール 標準的な抜け穴はありません。 出力の各「数字」の符号は同じ(またはゼロ)でなければなりません。 すべての数字の絶対値は、基数の分子の絶対値より小さくなければなりません。 ベースの絶対値は1より大きいと仮定できます。 有理数ベースは、その最小の縮小形にあると仮定できます。 入力では、分子のベースと分母を別々に使用できます。 数値に複数の表現がある場合、それらのいずれかを出力できます。(例えば、ベース10に12とすることができる{-2, -8}と{1, 9, 2}ベース-10で) テストケース: フォーマット: {in, base} -> result {7, 4/3} -> {3, 3} {-42, -2} -> {1, 0, 1, …

26
電子貯金箱
貯金箱は、中に収集コインを使用した容器である。この課題は、4枚の米国のコイン使用の場合:四半期、ダイム、ニッケル、およびペニーを。 チャレンジ あなたの課題は、電子貯金箱を作成することです。プログラム(または関数)を作成して、実行(または呼び出し)したときに、所有している各コインの数と、コインの合計金額を出力(または返す)します。 入力 貯金箱に入れるコインの文字列、配列など(お好み)(大文字と小文字は区別されません)。 Q - Quarter(Value of 25) D - Dime(Value of 10) N - Nickel(Value of 5) P - Penny(Value of 1) 出力 選択した整数以外の区切り文字で区切られた、入力からのコインの数と合計金額。(コインの合計を出力する順序は重要ではありませんが、コインの合計値(合計)は最後の要素でなければなりません) 例 Input -> Output P -> 1,0,0,0,1 or 0,0,0,1,1 or 0,0,1,0,1 or 1,1 N -> 0,1,0,0,5 D -> 0,0,1,0,10 Q -> 0,0,0,1,25 QQQQ …
11 code-golf 

3
同じ名前、ラメ!
名前のリストが指定されたときに、指定された名前の重複が姓の一意の短縮バージョンを持つリストを出力または返す関数またはプログラムを作成します。 入力: 名前のリスト。名前は、スペースで区切られた名と姓で定義されます。名前は、大文字と小文字のみを含む空でない文字列です。リストは、文字列の配列、または定数を非アルファ、非スペース文字で区切った名前にすることができますが、出力は入力と同じ形式である必要があります。 出力: これらの規則によって変更された、入力と同じ順序および形式の入力された名前のリスト: 一意の名の場合、名のみを出力します 同じ名前を共有する名前の場合: 彼らの名に加えて、別の名前と共有されていない姓の最も短い一意のバージョンを追加し、その後にピリオドを付けます。たとえば、次の John Clancy, John SmithようJohn C.,John S.にJames Brown, James BratteなりますJames Bro.,James Bra. ある姓が別の姓のサブセットである場合(など)Julian King,Julian Kingsley、ピリオドなしの小さい姓の完全な姓を返します。例は次のようになりますJulian King,Julian King. 基本的には期間が正規表現を表し.+、唯一 1名がそれと一致している必要があります。 あなたは誰も同じ名と同じ姓を共有しないと仮定するかもしれません 名前は大文字と小文字が区別されます テストケース: John Clancy,Julie Walker,John Walker,Julie Clancy -> John C.,Julie W.,John W.,Julie C. Julian King,Jack Johnson,Julian Kingsley > Julian King,Jack,Julian King. Jack Brown,Jack …

6
眠りに落ちる羊を数える
ほとんどの人は、羊が眠りにつくのを数えようとすることを知っています。羊の群れがいて、そのうちのいくつかはフェンスを飛び越えており、あなたは彼らがジャンプするときに羊を数えます。おそらく、これはあなたの心を静め、眠りに落ちるようにあなたを睡眠のような状態にするのに役立ちます。 カウントされるのを待っている、右向きのASCII羊です。 '00^> || ASCII羊がフェンスを飛び越えています: '00^> /\ ++ すでに数えられている、左向きの1つを次に示します。 <^00' || チャレンジ 2つの入力整数、nおよびが与えられ、合計の羊の数mをn > 2記述し、m > 0すでに数えられた羊の数を言って、眠りに落ちる羊を数えるASCIIアート表現を出力します。 ツイストのために: 羊がいるペンの大きさにより、一番上の列には最大数の10羊しか収容できず、常に一番上の列にいる必要がある現在ジャンプしている羊は数えられません。 後続の行では、それぞれのペンの外側に羊を置くことはできません(2番目の行の左側に1番目の行よりも多くの羊を置くことはできません。右側にも同じ羊を置くことはできません)。 11羊の総数が1匹以上ある場合は、一番上の行に10プラスのジャンプ羊が必要です。 前後の空白、および羊の間の空白は問題ではありません。 羊の間には少なくとも1つの空白文字があります すべてのキャラクターが適切に並んでいます。 これらのルールが満たされている限り、羊の実際の配置は実装次第です。 例 たとえば、ここにとがn=3ありm=1、これが最も単純なケースです。 '00^> '00^> /\ <^00' || ++ || これはとでn=11、m=61本の水平線に収まる最も羊です。 '00^> '00^> '00^> '00^> '00^> /\ <^00' <^00' <^00' <^00' <^00' <^00' || || || …

6
菱形シーケンス
成長する菱形の要素を列挙することを想像してください[1],[1,3,1],[1,3,5,3,1],…(うまく整列するような奇数のみ)。これは次のようになります。常に列挙を開始することに注意してください1。 01 1 02 03 04 1 2 3 4 05 06 07 08 09 … 5 10 11 12 13 (1) (1,3,1) (1,3,5,3,1) (1,3,5,7,5,3,1) … カラムの合計を開始すると[1],[2],[1,3,5],[4],[5],[2,6,10],…、菱形のシーケンスが得られます。これらは、シーケンスの最初の100要素です。 1,2,9,4,5,18,35,24,9,10,33,60,91,70,45,16,17,54,95,140,189,154,115,72,25,26,81,140,203,270,341,288,231,170,105,36,37,114,195,280,369,462,559,484,405,322,235,144,49,50,153,260,371,486,605,728,855,754,649,540,427,310,189,64,65,198,335,476,621,770,923,1080,1241,1110,975,836,693,546,395,240,81,82,249,420,595,774,957,1144,1335,1530,1729,1564,1395,1222,1045,864,679,490,297,100 IO 次の3つの入出力メソッドのいずれかを自由に選択できます(無効な入力を処理する必要はありません)。 整数nを指定すると、そのシーケンスのn番目の要素が出力されます(0インデックスまたは1インデックス、選択) 整数nが与えられた場合、そのシーケンスの最初のn個の要素 シーケンスを無制限に印刷/返す テストケース 上記の最初の100の用語を参照してください。ここにいくつかの大きな例を示します(1-indexed): 101 -> 101 443 -> 1329 1000 -> 49000 1984 -> 164672 2017 -> 34289 …

4
バランスのとれた三値論理
バランスのとれた三値論理 三項は通常言うことですベース3、のために別の名前であり、各桁がある0、1または2、それぞれの場所は次の場所と同じくらいの3倍の価値があります。 バランスの取れた三元は-1、0およびの数字を使用する三元の修正です1。これには、サインが必要ないという利点があります。各場所には、次の場所の3倍の価値があります。最初のいくつかの正の整数であり、したがって[1]、[1, -1]、[1, 0]、[1, 1]、[1, -1, -1]最初のいくつかの負の整数であるが[-1]、[-1, 1]、[-1, 0]、[-1, -1]、[-1, 1, 1]。 3つの入力がありx, y, zます。zいずれかである-1、0または1、しばらくxしてyから可能-3812798742493に3812798742493包括的。 最初のステップでは、変換することであるxとy小数から平衡三します。これにより、27個のトリット(TeRnary digITS)が得られます。あなたは、その後からトリットを結合する必要があるxとy三項演算を使用してペアにして、結果バックは、小数点に変換します。 zこれら3つの3項演算のそれぞれにマップする値を選択できます。 A:2つのトリットが与えられ、どちらかがゼロの場合、結果はゼロになります。それ以外の場合、結果は異なる場合は-1、同じ場合は1です。 B:2つのトリットが与えられ、どちらかがゼロの場合、結果は他のトリットです。そうでない場合、結果が異なる場合はゼロ、同じ場合は否定になります。 C:2つのトリットが与えられた場合、結果が異なる場合は結果はゼロになり、同じ場合は値はゼロになります。 例。仮定しxている29とyあります15。バランスの取れた三元で、これらはなる[1, 0, 1, -1]と[1, -1, -1, 0]。(残りの23個のゼロのトリットは、簡潔にするために省略されています。)それぞれの操作の後に、それらはA:[1, 0, -1, 0]、B:[-1, -1, 0, -1]、C:になり[1, 0, 0, 0]ます。結果を10進数に変換バックがあり24、-37そして27それぞれ。その他の例については、次のリファレンス実装を試してください。 コードスニペットを表示 function reference(xd, yd, zd) { var rd = 0; var p3 …

12
0000-01-01から99999-12-31までの回文のプライム日付をすべてリストします
回文、プライム、日付が何であるかを知っています。 あなたの仕事は、3つの特性すべてを満たす10万年のすべての日付をリストすることです。 数字以外は気にせず、次の形式を使用します:YYYYMMDDおよびYYYYYMMDD。 0000-01-01から9999-12-31 までの日付は8桁の回文日付(ある場合)として印刷し、10000-01-01から99999-12-31までの日付は9桁の回文日付として印刷する必要があります。 日付を時系列にリストすることは必須ではありません。 有効な出力の一部の例。 最初の3つの9桁の主回文日付: ... 100111001 100131001 100161001 ... ルール 標準の抜け穴が適用されます。

4
デコードファクターツリー
ファクターツリーのエンコードに失敗した場合のファクターツリーの定義は次のとおりです。 空の文字列は1です。 連結は乗算を表します。 括弧(またはペア文字)で囲まれた数値nは、n番目の素数を表し、2が最初の素数です。 これは再帰的に行われることに注意してください。n番目の素数は、括弧内のnの因子ツリーです。 数値の因子は、最小から最大の順に並べる必要があります。 たとえば、2〜10の因子ツリーを次に示します。 () (()) ()() ((())) ()(()) (()()) ()()() (())(()) ()((())) この課題では同様の形式を使用します。ただし、この課題はこれらの構造をデコードすることです。 テストケース 臆面もなく盗まは、 再利用、最後のチャレンジから。 上記9に加えて… ()()((()))((())) => 100 (()(()(()))) => 101 (()())(((())))(()(())) => 1001 (((((((()))))))) => 5381 (()())((((()))))(()()(())(())) => 32767 ()()()()()()()()()()()()()()() => 32768 ルール 入力内のペアの文字は、かっこ、角かっこ、中かっこ、または山かっこから選択します。質問があれば、他の形式(XMLタグなど)を許可する場合があります。 2から2 15または32768 までの任意の数の因子ツリーを処理できるはずです。 これはcode-golfであるため、バイト単位の最短回答が優先されます。

5
プライム「n」桁
これには実用的な目的はありませんが、ゴルフは楽しいかもしれません。 チャレンジ 数nが与えられると、 nの各桁の量をカウントし、各カウントに1を加算します nの素因数分解を行う 重複する素数を含めずに、nの素因数分解の各桁の量を数える 手順1と3のリストのそれぞれの要素を乗算して、新しいリストを作成します そのリストの合計を返します たとえば、121には2つ1のsとa 2があるため、手順1から次のリストを取得します。 0 1 2 3 4 5 6 7 8 9 1 3 2 1 1 1 1 1 1 1 121の素因数分解は11 2で、ステップ3の次のリストを示します。 0 1 2 3 4 5 6 7 8 9 0 2 0 0 0 0 0 0 …

8
行列の固有値
正方行列が与えられた場合、行列の固有値を出力します。各固有値は、その代数多重度に等しい回数だけ繰り返される必要があります。 行列の固有値は、いくつかの列ベクトルに対して、などのAスカラー値です。これらは、次の特性多項式の解でもあります(は、と同じ次元の単位行列です)。λvA*v = λ*vAdet(A - λ*I) = 0IA 出力は、有効数字3桁まで正確でなければなりません。すべての入力と出力は、選択した言語の表現可能な数値範囲内にあります。 組み込みは許容されますが、組み込みを使用しないソリューションを含めることをお勧めします。 テストケース これらのテストケースでIは、虚数単位を表します。複素数はの形式で記述されa + b*Iます。すべての出力の有効桁数は3桁です。 [[42.0]] -> [42.0] [[1.0, 0.0], [0.0, 1.0]] -> [1.00, 1.00] [[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]] -> [16.1, -1.12, -1.24e-15] [[1.2, 3.4, 5.6, 7.8], [6.3, 0.9, -5.4, -2.3], [-12.0, -9.7, 7.3, 5.9], [-2.5, …

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