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

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

6
パスを見つけてください!
プログラムまたは関数を記述する必要があります。 入力は数値の「マップ」です。マップを改行文字(\n)付きの文字列または文字列の2D配列のいずれかとして選択できます。 すべてのマップは5文字x 5文字で、文字は常に0より大きい数字かスペースです。 これが地図の例です: 12 45 11233 233 1 2 899 あなたの仕事は、マップで接続されたコンポーネントを見つけることです。有効なコンポーネントは、水平または垂直(斜めではなく)に接続された少なくとも3つの一連の同一の数字(スペースではない)です。次に、有効な接続コンポーネントの文字をxs に置き換え、その結果を印刷または返す必要があります。 したがって、上記の例の出力は次のようになります。 x2 45 xx2xx 2xx 1 2 899 これは別のテストケースです(Martin Enderに感謝): Input: 2 3 4 1 5 111 6 11 7 Output: 2 3 4 x 5 xxx 6 xx 7 これはコードゴルフなので、バイト単位の最短コードが勝ちます!

3
数に到達する方法
最初の番号の入力と第2の数(両方とも正の整数、exludedゼロ)を考えると、次のアクションを使用して、あなたが最初の第二の実施を作ることができるどのように多くの方法で決定します+1、+2と*3。操作は単純に左から右に適用されます。 例: 入力:1 2。出力:1。つまり、あなただけ得ることができる2ことによって+1、片道そう。 入力:1 3。出力:3。+2つまり+1+1、またはを実行して3を取得できます。*3 入力:1 4。出力:4。 入力:2 6。出力:6。 入力:2 7。出力:9。 入力:1 10。出力:84。 方法がない場合、たとえば100 100、または100 80、出力は0です。 入力を配列または任意の便利なセパレーター付きの文字列として受け取ることもできます。 最短のソリューションが優先されます。

2
数が代数であることを証明する
この答えに触発されて(私の強調): ゲームをします。いくつかの数xがあるとします。xから始めて、ゼロ以外の任意の整数で加算、減算、乗算、または除算できます。xを掛けることもできます。これらのことは何度でも行うことができます。合計がゼロになると、勝ちます。 たとえば、xが2/3 であるとします。3を乗算してから2を減算します。結果はゼロです。あなたが勝ちます! 仮定xは 7 ^(1/3)です。乗算により、X、それまでのx再び、その後、あなたは勝つ7を引きます! 仮定xは √2+√3です。ここで勝つ方法を見ることは簡単ではありません。しかし、xを掛けて10を引き、xを 2倍して1を加えると、勝つことがわかります。(これは自明ではありません。電卓で試すことができます。) しかし、x =πで始めると、勝つことができません。加算、減算、乗算、整数による除算、またはπによる乗算では、いくつのステップを実行しても、πから0に到達する方法はありません。(これも明白であるとは限りません。非常に注意が必要です!) あなたが勝つことができる√2+√3のような数は代数と呼ばれます。あなたが勝つことができないπのような数は超越と呼ばれます。 なぜこれが面白いのですか?各代数は整数に算術的に関連付けられており、ゲームでの勝利の動きはその方法を示しています。ゼロへの道は長くて複雑かもしれませんが、各ステップは単純であり、道があります。しかし、超越数は根本的に異なります。それらは、簡単な手順で整数に算術的に関連しているわけではありません。 基本的に、上記の質問で使用した手順を使用して、特定の入力でゲームを「勝ち」ます。 実数の代数定数が与えられたx場合、以下の許可された演算を使用して数値をゼロに変換します。 整数を加算または減算します。 ゼロ以外の整数で乗算または除算します。 元の定数を掛けxます。 入力は、整数、加算、減算、乗算、除算、指数(**またはの選択^、指数は根を表すために使用されます)、および括弧を含む可能性のある文字列です。入力のスペースはオプションですが、出力にはありません。ゼロの結果を得るのに必要なステップを出力する必要があります。そのため7、1ステップとして乗算すると、として出力され*7ます。末尾にスペースや改行を入れることができます。 例 0 -> +0 (or any other valid, or empty) 5/7 + 42 -> -42 *7 -5 (or shorter: *7 -299) 2^(1/3) -> *x *x -2 5*(3**(1/4)) -> *x *x …
10 code-golf  math 

10
結果を得るために必要な操作を見つける
したがって、タスクは単純で、数値の配列と結果が与えられた場合、要求された結果を取得するには、arrayから数値に使用する必要がある操作を見つける必要があります。 簡単に始めましょう。加算、減算、乗算、除算などの基本的な演算のみを許可します。 例: Input : [5,5,5,5,5] 100 Output : 5*5*5-5*5 Javaのような言語にいくつかの利点を与えるために、要求はプログラム全体ではなく関数を実装することであり、結果はパラメーター経由で返すか、コンソールに出力できます。 コードはバイト数に基づいてスコアリングされ、ゴルフコードチャレンジなので、最低のスコアが勝ちます。 別の要件は、配列にdigidsのみが含まれている場合、追加の-10ポイントを取得できることです。次の数字から数値を構成できるソリューションをサポートします。すなわち Input : [1,2,3,4,5] 0 Output : 12-3-4-5 出力が提案された出力である場合、いくつかのケースでは複数のソリューションがあることに注意してください。特定のタスクに対して1つ以上のソリューションを提供するかどうかは、あなた次第です。 編集: 結果は数学的な観点から有効である必要があります。したがって、除算は整数ではなく有理除算であり、演算の優先順位は従来の数学と同じです(最初の乗算と除算、次に加算と減算)。

3
百の広場!
基本に立ち返って... 地元の小学校(学年?)の教師として、クラスに時間割を教える方法が必要です。あなたの処分で、あなたは100個の正方形とたくさんの赤ペンを持っています。また、クラスに正解をすばやく表示できるようにする必要もあります。 さて、あなたはタイムテーブルを実行できるプログラムを書くのに十分賢いですが、100の正方形にそれらを描くことができますか? チャレンジ 入力の倍数である数値に陰影を付けるためにANSIエスケープコードを使用して、100平方を標準出力または同等のものに出力します。 1〜100の数字を含む10x10グリッドを出力します。 各ボックス内の2桁の数字の配置が一貫している限り、それは問題ではありません 1桁の数字の場合は、2桁にパディングして、2桁の数字と同じフォーマットを使用するか、ボックスの中央に配置することができます。 ボックス内の数値が入力の倍数である場合は、ボックス全体を赤で着色します。 これは、数字部分だけでなく、ボックス全体を意味します たとえば、入力が与えられた場合、与え3られた100平方を印刷します これはコードゴルフなので、バイトでの最短の答えが勝ちます!

13
対角線のドット積
この課題は非常に簡単です。入力として正気な方法で表された正方行列が与えられ、行列の対角線のドット積を出力する必要があります。 具体的には、対角線とは、左上から右下へ、および右上から左下への対角線です。 テストケース [[-1, 1], [-2, 1]] -> -3 [[824, -65], [-814, -741]] -> 549614 [[-1, -8, 4], [4, 0, -5], [-3, 5, 2]] -> -10 [[0, -1, 0], [1, 0, 2], [1, 0, 1]] -> 1

4
最小コストのブロック対角化
主対角線上に1の正方ブロックを持ち、その他の場所では0であるバイナリブロック対角行列を考えます。このような行列を「有効な」行列と呼びましょう。 たとえば、ここにいくつかの有効な4x4行列があります。 1 0 0 0 1 1 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1 1 1 0 1 0 0 1 1 0 0 0 1 1 0 0 1 1 1 1 1 0 0 1 1 1 1 …

30
繰り返しアイテムのグループ
チャレンジの説明 アイテムのリスト/配列を指定して、連続する繰り返しアイテムのすべてのグループを表示します。 入力/出力の説明 入力は、アイテムのリスト/配列です(すべてが同じタイプであると想定できます)。言語が持つすべてのタイプをサポートする必要はありませんが、少なくとも1つをサポートする必要intがあります(できれば、のようなタイプbooleanも非常に興味深いものではありませんが、問題ありません)。出力例: [4, 4, 2, 2, 9, 9] -> [[4, 4], [2, 2], [9, 9]] [1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 4, 4] -> [[1, 1, 1], [2, 2], [3, 3, 3], [4, 4, 4, 4]] [1, 1, 1, 3, 3, 1, 1, 2, …

1
f(item)が最小のリストでアイテムを見つける方法は?
リストlと関数がありますf。f厳密に増加または減少しているわけではありません。リストでf(item)最小のアイテムを見つけるにはどうすればよいですか?たとえば、次のようなリストがあるとします。 l = [1, 2, 3, 4] そしてlist(f(x)for x in l): [2, 9, 0, 3] f(3)他のどのfよりも小さいので、「3」と表示されます。これを行う最短の方法は何ですか?私は最初に試しました: min(f(x) for x in l) しかし、これは0、ではありません3。簡潔にするためではなく、読みやすさのために撮影している場合は、次のようにします。 index = 0 smallest = f(l[0]) for i in range(len(l)): value = f(l[i]) if value < smallest: smallest = value index = i これは問題ありませんが、コードゴルフにとっては恐ろしいものです。ゴルフしても i,s=0,f(l[0]) for x in …
10 code-golf  tips  python 

2
橋を架ける
あなたの仕事は、入力を与えられた2つの崖をd距離で離して接続するブリッジを構築することです。d常に均一になります ただし、ブリッジにはそれを保持するための柱が必要です。各列は、両側に最大6つのスペースを保持できます。 この例では: ________ ________ | | A | | B |----------------------| d = 22 のブリッジはd = 20、2列のこのようになります。列はdにはカウントされません。 _____|__________|_____ 12345|1234554321|12345 | | ルール: 立ち上がるのに十分なカラムが必要です。 立ち上がるのに必要な最小数のカラムが必要です。 対称でなければならない 勝ったバイトの最小量 例:(#はスペースを数えるのに役立つだけです。出力には含めないでください) d = 10 _____|_____ 12345|12345 | d = 32 _____|___________|___________|_____ 12345|12345654321| | | | | d = 8 ____|____ 1234|1234 | d …

3
RegEx-golf:文字列のすべてのコンテンツに一致
あなたの仕事は、文字列内のすべてに一致するRegExを記述することです。 文字列は、エスケープされていない2つので囲まれている(ただし含まれていない)すべてのものとして定義されます"。 Aが"でエスケープすることができ\、また再びエスケープすることができ、。 テストケース string: ab\c"defg\\\"hi"jkl"mn\\\\"opqrst"" matches: ^^^^^^^^^^ ^^^^^^ ^ (the empty string) 得点 最短のソリューションが優先されます。 スペック 使用するフレーバーを指定してください。 入力はバランスが取れてい"ます。 \string-beginning-delimiterの直前には何もありません。たとえば、処理する必要はありませんabc\"def"

12
N固有の加算セット
セットは重複することなく順序付けされていないことに注意してください。 定義アンN -uniquely添加集合S長さであり、Kは、セットようであるすべてのNに-lengthサブセットSの異なる数の合計。言い換えれば、SのすべてのN長さのサブセットの合計はすべて異なっています。 対物入力として配列/セットと番号が与えられるN任意の合理的な形式で機能するか、完全なプログラムには、検索およびリターン又は出力truthy又はfalsey値入力であるか否かを示す(falseyためerroringは大丈夫です)N -独自の添加剤。 各要素は最大で1回しか出現せず、各数値は言語のネイティブデータ型内にあると想定できます。必要に応じて、入力がソートされていると想定することもできます。最後に、あなたはそれを仮定するかもしれません0 < N <= K。 例 セットS = {1, 2, 3, 5}とを考えてみましょうN = 2。以下は、すべての一意のペアのすべての合計ですS(一意のペアのみが合計の対象となるため)。 1 + 2 = 3 1 + 3 = 4 1 + 5 = 6 2 + 3 = 5 2 + 5 = 7 3 + 5 = 8 出力に重複がないことがわかるので、Sは2一意的に加算されます。 …

1
浮かびますか?
チャレンジ ボートの底を表す2D文字列を入力として指定すると、ボートが浮くかどうかを決定する必要があります。この2D文字列は、最も便利な形式にすることができます。(改行付きの文字列、文字列のリスト、文字のリストのリストなど)。浮かぶ場合は真の値を、沈む場合は偽の値を出力します。 船底の密度が一定でない場合、ボートは転倒するため、のすべての特性は同じでなければなりません。また、スペースで表される大きな穴がボートにある場合、沈みますので、ボートに4より大きい面積の穴があってはなりません。次に例を示します。 ######## # #### ######## # ## ## # ##### ######## このボートは有効です。その最大の穴の面積は4であるためです。このボート: ######## ######## # ## # ##### ######## 面積が7の穴があるため、は無効です。すべての入力の外側は穴のない塗りつぶされた四角形であると安全に想定できます。さらにいくつかのテストがあります: $$$$$$$$ ***$$$$$ ***$$$$$ ***$$$$$ $$$$$$$$ Invalid density. Sink. %%%%%%%% % % % %%%%% % % % % %%%%%%%% None of the holes are larger than 4. Float. OOOOOOOO …

9
パスワードについて
でキープトーキングと誰もが爆発、プレイヤーは自分の「専門家」(手動で他の人)からの情報に基づいて爆弾を融着除去する使命を帯びています。各爆弾はモジュールで構成されており、そのうちの1つはパスワードにすることができます。エキスパートには、すべての5文字の長さの可能なパスワードのリストが提供されます。 about after again below could every first found great house large learn never other place plant point right small sound spell still study their there these thing think three water where which world would write プレイヤーには、パスワードの各場所で使用可能な6文字のリストが与えられます。可能な文字の組み合わせを考慮して、正しいパスワードを出力します。入力は任意の適切な形式(2D配列、改行で区切られた文字列など)にすることができます。リスト/文字列/配列/パスワードの圧縮/生成に使用するコードを割り引くことができます。(@DenkerAffeに感謝) 注:パスワードは大文字と小文字を区別しません。入力は1つのパスワードに対してのみ解決されると想定できます。 例/テストケース ここでの入力は、文字列の配列として表されます。 ["FGARTW","LKSIRE","UHRKPA","TGYSTG","LUOTEU"] => first ["ULOIPE","GEYARF","SHRGWE","JEHSDG","EJHDSP"] => large ["SHWYEU","YEUTLS","IHEWRA","HWULER","EUELJD"] => still
10 code-golf 

1
この写真にはいくつの形がありますか?
子供はオブジェクトを分類して数えるのがとても上手です。コンピュータはもっと問題があるようです。これは、この問題の簡略版です。画像内のオブジェクトを分類およびカウントできる小さなプログラムを作成できますか? 問題:1つ以上の円と四角形を含む画像が与えられた場合、円の数と四角形の数を含む2つの整数を返します。 ルール 入力画像は、選択したビットマップ形式の白い背景に黒い数字になります。 画像の幅と高さは100〜1000ピクセルです。 図は画像内に完全に含まれます。 図の線幅は1ピクセルです。 画像はアンチエイリアスを使用しません。白のみに黒になります。 図形は、接触したり、交差したり、別の図形の中にある場合があります。 交差する図形には、最大4つの共通ピクセルがあります。 円の直径は20ピクセル以上になります。 長方形の辺の長さは10ピクセル以上になります。 形状を認識する組み込み関数やライブラリ、またはこの課題を簡単にする他の関数を使用することはできません。 円と長方形の数を含む2つの整数を返すか、出力します。 例1 回答:3 4 例2: 正解:4 13 これはコードゴルフの挑戦なので、各言語で最短のプログラムまたは機能が勝ちます。

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