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

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

16
CMYK値をRGBに変換する
CMYKのカラーコードを指定して、RGB値に変換します。 入力: スペースで区切られた4つの整数(0〜100の範囲)の文字列 86 86 0 43 28 14 0 6 0 41 73 4 出力: #141592 #ABCDEF #F49043 最短のコードが勝ちます! ヒント: CMYKをRGBに変換するには、次のような式を使用できます。 Red = 255 x (1 - Cyan/100) x (1 - Black/100) Green = 255 x (1 - Magenta/100) x (1 - Black/100) Blue = 255 x (1 - …

4
もう一度通知しますか?
前書き これまでのことを聞いた思い出させますか?番号?私も約2年前までしませんでした。基本的な前提は、教師がリマインダーを送信し、生徒とコミュニケーションをとることです。かなりきちんとしていますか?エモートを送信してメッセージに反応することもできます!私は日常的にそれをしています。 ただし、リマインダーについての1つのことは、教師が常に「宿題をしてください!」を送信することです。「そうしないと、Fがもらえます!」。しかし、「火曜日のテスト」や時折「良い一日を!」などの便利なものもあります。私は親指を立てて喜んで返信することがほとんどですが、親指を下に置く必要がある場合もあります。 チャレンジ 今日のタスクは、メッセージに特定の意味があるかどうかを確認することです。肯定的な意味合いがある場合は、高く評価して返信してください。否定的な意味合いがある場合は、イマイチで返信してください。 意味合いを検出するにはどうすればよいですか? 肯定的な意味合いは、通常、3つの単語を含みます。3つの単語は、「幸せ」、「良い」、「合格」です。 否定的な意味合いも3になります。それら3:テスト、失敗、および宿題。 私は何をテストしていますか? メッセージにポジティブ、ネガティブ、または両方の意味合いが含まれているかどうかをテストしています。 メッセージに肯定的な意味合いが含まれている場合は、先に進み、Unicode コードポイントをグッド(U + 1F44D)に戻します。 否定的な意味がある場合は、低く評価するためのUnicodeコードポイント(U + 1F44E)を返します。 メッセージに否定的な意味と肯定的な意味の両方がある場合は、ニュートラルフェイス(U + 1F610)のコードポイントを返します。 他の何らかの理由で、どちらの意味もない場合は、すてきなol 'shrug(¯\ _(ツ)_ / _)を返します。肩をすくめが正しく表示されない場合、肩をすくめるへのEmojipediaリンクは次のとおりです 制約 プログラムはメッセージを入力として受け取る必要があります。 正の意味合いは、親指の親指のコードポイントを返す必要があります(U + 1F44D) 否定的な意味合いは、親指を下げたコードポイント(U + 1F44E)を返す必要があります。 メッセージに両方の意味がある場合は、ニュートラルフェイスコードポイント(U + 1F610)を返します。 メッセージにどちらの意味も含まれていない場合は、肩をすくめてください(¯\ _(ツ)_ /¯)。 これはコードゴルフで、最短バイトが勝ちます テストケース。 Input -> Output Happy Good Friday! -> U+1F44D Congrats, …

10
そのオーストラリアの州を拡大する
オーストラリアの州と準州は8つあり、それぞれ2文字または3文字の略語が使用されています。 ACT:オーストラリア首都特別地域 NSW:ニューサウスウェールズ州 NT:ノーザンテリトリー QLD:クイーンズランド SA:南オーストラリア TAS:タスマニア VIC:ビクトリア WA:西オーストラリア あなたの仕事は、大文字で有効なオーストラリアの州の省略形を取り、正しいフルネーム(上記のように大文字と小文字を区別する)を返す関数/プログラムを書くことです。 これはその言語のすべてのプログラムの避けられない副作用である単一の末尾の改行を除いて、余分な空白は許可されません。 例えば: f("TAS") => "Tasmania" 標準のコードゴルフ規則(バイト単位の最短コードが優先されます!)と抜け穴が適用されます。

30
入力と次に高い二乗の間の値の数
入力として正の平方数を指定します。入力と次に高い二乗の間の値の数を出力します。 例 入力:1 出力:2 理由:2と3は1と4の間で、次に大きい正方形 入力:4 出力:4 理由:5、6、7、8の数字は4から9の間です
9 code-golf  math 

6
目を見張る
楕円と棒として印刷されたバイナリ値を目撃することはそれほど簡単ではありません...そのためには、カスタムバイナリ表現で数値を出力する関数(またはプログラム)を記述する必要があります。 したがって、たとえば3(00000011)のような数値を受け取り、ビットをユーザー定義の形式で、たとえばスペースで区切られたペアで出力したいとします。 00 00 00 11 または、たとえば、逆の順序で、いくつかのデコレータを使用します。例: 11_00_00_00 さらに、 '0'と '1'をカスタム文字として表示して、それらをよりよく区別できるようにする必要があります。例: XX oo oo oo したがって、次の仕様ですべてを行うコードを作成することが課題です。 仕様 関数は次のような入力を受け取ります: f(A、mask、zeros、ones) パラメーター: A-入力数値-0から255の範囲の任意の(符号なし)整数。 mask-出力の構成を定義する文字列パラメーター。 zeros-同じ長さの文字列で、各出力スロットの「ゼロ」グリフを定義します。 ones-同じ長さの文字列で、出力スロットごとに「1」グリフを定義します。 出力構成のルール: 出力がどのように生成されるかを理解するには、例とともにこの画像をよく見てください。 したがって、マスクの1桁のみが解析され、Aの対応するビットに置き換えられます。他の文字はそのままです。さらに、取得したビットの値が1の場合、最終出力に「X」として表示され、0の場合、「o」として表示されます。上記の例では、取得した4つのビットはすべて「1」なので、すべてのスロットに「X」が表示されます。 入力数が128の場合、論理的には、出力はになりますX foo bar ooo。パラメータ「0」と「1」の文字:印刷可能なASCII文字。マスクと常に文字揃えされていると想定します。 注: ビットのインデックスは0です。0番目のビットはMSBです。 数字8、9はマスク文字列では許可されていないと仮定します。 入力文字列には、印刷可能なASCII文字が含まれます。 「ゼロ」と「1」はマスクに合わせて文字で整列されます。 あなたの言語の特殊文字/修飾子の場合:入力文字列に表示されないと想定できます。 明確にするために、他の例を参照してください。 入力->出力例 すべての8ビットをスペース区切り文字で共通の順序で、楕円と棒の一般的な表記で出力します。 mask = "0123 4567" zeros = "0000 0000" ones = …

4
アリスの序数書式
前書き Aliceは、Martin Enderによる2次元言語で、2つの異なる実行モード、cardinalとordinalがあります。命令ポインタがミラー(または)を通過すると、1つのモードから別のモードに切り替わります。/\ この課題では、コマンドが文字列を操作し、命令ポインターが斜めに移動して、コードの端に対して跳ねる序数モードに焦点を当てます。 通常モードでのみ動作する単純なプログラムは、次の例のように、非常にコンパクトなスタイルで記述できます。 /fbd/ @aec\ ここでIPは、最初のセルが東に行くから枢機卿モードで起動し、第1のミラーを透過し、斜めに移動し、バウンス、コマンドの実行を開始するa、bとc。それは、それは他のミラーに向けて南に行くと、その後、西に向けたバックをバウンスコマンドに遭遇した起動可能北東ミラーに遭遇したd、e、f、そして最後に@、プログラムを終了します。 この種の構造は非常にコンパクトですが、記述と保守が容易ではありません(単一のコマンドを追加すると、ほとんどのコードの順序を変更しなければならなくなる可能性があります)。書式設定を手伝ってください。 タスク コマンドのシーケンスがあり、各コマンドが単一の印刷可能なASCII文字である場合、シーケンスの前半が2行目の最初の文字から始まり、常に右に向かって斜めに移動できるように、コマンドを2行に並べ替えます。後半は残りの文字を右から左に読みながら読むことができます。ミラーと終了記号については心配しないでください。自分で追加します。 したがって、たとえば、入力abcdefを指定すると、出力する必要があります fbd aec 入力が奇数長の場合、遭遇するコマンドのシーケンスが同じままである限り、どこかに単一のスペース(Aliceでは何もしない)を追加する必要があります。また、長さが1文字だけ異なる2つの行を出力するように選択することもできます。その場合、短い方の行の終わりに1つのスペースがあると見なされます。 ルール これはcode-golfであり、バイト単位での最短の答えが勝ちます! デフォルトの入出力メソッドのいずれかを介して入出力できます 入力は、1行の印刷可能なASCII文字で構成されます 出力では単一の末尾改行が許可されます プログラムの一部の出力は、Aliceプログラムとして実行すると、完全に正しい動作にならない場合があります(たとえば、パディングスペースが文字列リテラル内に挿入されている場合)。あなたはこれらの状況に自分自身を心配する必要はありません 標準の抜け穴は禁止されています テストケース --Input abcdef --Output fbd aec --Input 123 --Output 2 13 OR 31 2 OR 3 12 OR 32 1 --Input O --Output O OR O --Input "Hello, …

13
独自の赤と黒を作成する
レミゼラブルの音楽的な演奏では、「赤と黒」と呼ばれる曲が登場します。ここにその曲の一部があります: 赤-怒れる男の血! ブラック-昔の暗闇! 赤-明け方の世界! ブラック-ついに終わる夜! ソース。 あなたの仕事は、入力を鳴り響く「赤と黒」の国歌にすることです。 入力 改行で区切られたテキスト、または同様の適切なテキスト入力。例えば、 The blood of angry men! The dark of ages past! A world about to dawn! The night that ends at last! 空の入力は未定義です(範囲外)。 出力 入力の長さ(行数、入力配列の長さなど)が奇数の場合、何も出力しないか、誤って出力します。あなたの提出物はエラーを出力しないか、正しい出力を出力しようとしないかもしれません。 それ以外の場合は、入力をRed / Black歌詞に変更します。行頭の大文字を小文字に変換します。Red奇数行の前にプラス区切り文字を追加し、偶数行の前にBlack(可視)区切り文字を追加します。区切り文字もスペースで囲む必要があるため、出力は混雑していないように見えます(そしてゴルフされていません;))。 これで出力が得られました。 テストケース 出力区切り文字は-です。 In: The blood of angry men! The dark of ages past! …

10
弦の回転対称性
ローテーションは、「文字列を2つに分割し、その順序を逆にすることによって行われます」。オブジェクトは、その操作を適用した後でオブジェクトが変更されていない場合、操作の下で対称的です。したがって、「回転対称性」とは、「回転」後も文字列が変化しないという事実です。 sからaまでの文字のみで構成される空でない文字z列を指定すると、文字列の回転対称性の最高次数が出力されます。 テストケース: input output a 1 abcd 1 abab 2 dfdfdfdfdfdf 6 これはコードゴルフです。バイト単位の最短回答が優先されます。標準の抜け穴が適用されます。

3
PPCGの未回答の質問
この親愛なるStackExchangeサイトには、非常に多くの課題と多くの良い答えがあります。しかし、答えられなかった課題についてはどうでしょうか? 仕事 PPCGから疑似ランダムオープンアンサー(正確にゼロ答えの質問など)チャレンジを表示するプログラムまたは関数を記述します。すべての可能な課題は同じ確率で生成されるべきです。 入力 入力は行われません。 出力 タイトル、タグ、および改行で区切られたリンクのみである必要があります。 タイトルは、挑戦中のとおりでなければなりません。 タグには厳密な出力形式はありませんが、すべてのタグを含める必要があります。 リンクquestion-nameには質問ID の後に含まれる場合と含まれない場合があり、チャレンジにつながる必要があります。 人間が読める形式に変換される場合とそうでない場合があります。 & に & 先頭と末尾の空白は許可されます。 例 Encode a steganographic encoder into a package code-challenge,unicode,steganography /codegolf/65159/encode-a-steganographic-encoder-into-a-package Simple predictive keyboard CG code-golf /codegolf/76196/simple-predictive-keyboard-cg 得点 これはcode-golfなので、バイト単位の最短の回答が優先されます。

6
与えられたツリーがそのプリュファーコードを生成する
では、グラフ理論Prüferコードは、特定のツリーを示し整数のユニークなシーケンスです。 ウィキペディアから取得した次のアルゴリズムを使用して、ツリーのPrüferコードを見つけることができます。 頂点を持つラベル付きツリーTを考え{1, 2, ..., n}ます。ステップiで、最小のラベルを持つ葉を削除し、Prüferシーケンスのi番目の要素をこの葉の近傍のラベルに設定します。 (これは葉なので、隣人は1つだけであることに注意してください)。 グラフに頂点が2つだけ残っている場合は、反復を停止する必要があります。 仕事 ラベル付きツリーを入力出力として指定すると、そのプリュファーコード。合理的な方法で入力することができます。隣接行列や言語の組み込みグラフ表現など。(入力をPrüferコードとして受け取ることはできません)。 これはコードゴルフなので、ソースのバイト数を最小限にすることを目指してください。 テストケース 以下は、ASCIIの入力とその出力です。このようなASCII入力をサポートする必要はありません。 3 | 1---2---4---6 | 5 {2,2,2,4} 1---4---3 | 5---2---6---7 | 8 {4,4,2,6,2,5} 5---1---4 6 | | 2---7---3 {1,1,2,7,3}

5
最も忙しい時間を決定する
この課題は、このStack Overflowの投稿から大きく影響を受けました。 チャレンジ 部屋に入るときと部屋から出るときの点で多数のクライアントを想定して、部屋に最大人数の時間帯を決定します。時間分解能は分単位にする必要があります。 3つのクライアントが存在する場合、例えば8 - 10、9 - 11、10 - 12、正しい答えは次のようになります9 - 11。この期間中、部屋には2人のクライアントがいます。 入力 入力は、何らかの形式のペアのリストになります。これは、2タプルのリスト、要素がインターリーブされた偶数長のリストなど、適切な入力形式のいずれかです。時間は、12時間または24時間のいずれかの形式で指定できます。午前0時からの分数として時間を入力することもできます。 出力 出力は何らかの形式のペアのリストである必要がありますが、出力はより厳密です。出力はフラットリストにすることはできません。2タプルのリストまたはリストのリストなどにする必要があります。時刻は、12時間または24時間のいずれかの適切な形式で出力できます。午前0時からの分数として時間を出力することもできます。 例 input output INPUT 08:00 - 10:00 09:00 - 11:00 10:00 - 12:00 OUTPUT 09:00 - 11:00 INPUT 08:20 - 09:20 09:00 - 09:10 08:00 - 09:30 08:50 - 10:40 OUTPUT 09:00 - …
9 code-golf  date 

4
ロゴでのゴルフのヒント
ロゴは1967年に設計されたプログラミング言語であり、他の言語に比べて比較的少ないバイト数でグラフィックを作成できる可能性が非常に高いです。 ロゴは、タートルグラフィックスを利用した教育用プログラミング言語です。 ロゴには、次のような興味深い実装がいくつかあります。 Appleロゴ アタリロゴ LibreLogo(私の個人的なお気に入り) Texas Instrumentsロゴ UCBLogo そして他の多くの ... さらに、複数のロゴインタープリターをオンラインで見つけることができます。 このページは、ロゴプログラミング言語の実装に関するコードゴルフのヒントのハブとなることを目的としています。 出典:ジム・マラーによるグレート・ロゴ・アドベンチャー(1998)
9 code-golf  tips 

6
ポリグロットクインを後方に転送します。
あなたは一つの言語でそのソースコードとソースコードを出力ポリグロットしなければならない後方別では。通常のルールとは異なり、現在のファイルを読み取るか、組み込みを使用して提出物のソースコードを取得し、1つの言語でそれを逆にすることができます。ソースコードを回文にすることはできません。 たとえば、ソースコードがの場合、ある言語と別の言語でabcxyz出力する必要があります。コードがの場合、回文であるため無効です。abcxyzzyxcbaabcxyzyxbca 幸運を!

15
これは何色ですか?
入力としてファイル名を使用するプログラムをゴルフし、ファイルの色を出力する必要があります。 ファイルにはこれらの拡張子のいずれかが含まれますが、プログラムでサポートする必要があるのは1つだけです。答えのどれを言ってください。 .jpg .png .svg .gif .bmp そして今、クラシックなレイアウトに。 入力 上記の拡張子のいずれかが付いたファイル名。 代わりに、画像オブジェクトまたは既にエンコードされた画像を使用することもできます。 出力 そのファイル内の唯一の色は、オプションのリーディング付きの6桁の16進コードで、#たとえば#000000黒です。 RGBカラーの10進数または16進数の値を含むリスト/タプル/文字列を、数値 , |などの明確な区切り文字などで出力することもできます。 透明度は出力できません。 ファイルがすべて1色でない場合は、偽ではない偽の値を出力し、何も印刷せず#000000に終了する必要があります。これは、単にファイルを開いて最初のピクセルのRGB値を取得できないようにするためです。STDERR ルール 16進コードは、ファイルがすべて1色の場合にのみ出力する必要があります。 ファイルは500x500ピクセルになります ピクセルの透明度はすべて0%です。 これはコードゴルフなので、最短のコードが勝ちます! 例 #16C293 #8B16C2 #959090 #84F00C 偽の値

22
三角信号を生成
仕事: 与えられたサンプルインデックスxを使用して、周期4サンプルおよび振幅1の三角波のサンプル値f(x)を計算します。オフセットは負にすることができ、サンプル値は{0、1、-1}のいずれかになります。 テストケース: -5 -> -1 -4 -> 0 -3 -> 1 -2 -> 0 -1 -> -1 0 -> 0 1 -> 1 2 -> 0 3 -> -1 4 -> 0 5 -> 1 個人的に私はCで2つのアプローチを知っています。1つはルックアップテーブルを使用する方法、2つ目は条件付き命令を使用する方法です。ブラウニーポイントについて、純粋な「数学」アプローチで私を印象づけることができますか?(つまり、条件付き命令を使用したり、LUTにメモリを使用したりしない、純粋な機能的アプローチを意味します。)しかし、これは制限ではありません。できない場合、または言語がサポートしていない場合-解決策を投稿してください

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