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

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

3
Post-Itによるセキュリティ
ご存知かもしれませんが、ハッカーはどこにでもいて、すべてをハッキングしたいと考えています。あなたはハッカーを止めるパスワード要件を作るように頼まれました。問題は、上司がLOCにお金を払うのは悪いことだと聞いており、彼が月に挿入する$ 1800-$ 0.03 *文字を支払って、おそらく最も簡単に機能するものを書くようにしていることです。そのため、少数の文字(できれば非常に小さい文字)を使用するか、現金を忘れる必要があります。また、上司は使用する言語を気にしません。 良いパスワードの要件は、前述の記事の要件と似ていますが、外部ファイルにソリューションが依存するのを避けるために辞書ベースの要件が削除され、再配置された文字を確認する必要がありません(実際の意味を理解するのが難しい)、最後のルールは削除され(3/4とは?)、古いパスワードはチェックされません。 リンクされた記事から特定の要件を削除した後の正確な要件は次のとおりです。 少なくとも8文字が必要です! 12文字を超えないでください! 大文字と小文字があります! 大文字は8文字までです! 小文字は8文字までです! 少なくとも2つの文字があります! 一流の手紙があります! 少なくとも1桁が必要です! ユーザー名ではありません! ユーザー名を逆にしてはいけません! ユーザー名が含まれていません! 後方にユーザー名を含めないでください! 繰り返し文字のペアは1つのみです! 同じキャラクターが3回出現していない! カラットを含まない(^) スペースを含まない 含まない= ないconatain& #を含まない 含まない、 一致しない; 「を含まない 含まない> <を含まない 含まない[ 含まない| を含まない) このリストのスペルミスはすべてそのまま残されました。 $ ./checkpass Username: John Password: L!]E2m69 OK. $ ./checkpass Username: John Password: JohnnhoJ12 Nope. $ ./checkpass …
16 code-golf 

15
都市名ゲーム
必要に応じて、都市名ゲームのルールに従って都市をソートするプログラムを作成します。 都市の各名前は、前の都市名の最後の文字から始まる必要があります。例えばLviv -> v -> Viden -> n -> Neapolis -> s -> Sidney -> y -> Yokogama -> a -> Amsterdam -> m -> Madrid -> d -> Denwer ソートされたリストで、最初の都市の最初の文字と最後の文字の最後の文字は何も一致してはいけません。同じ文字である必要はありません。 都市名には文字のみが含まれると想定できます。 プログラムの出力は、入力と同じ大文字にする必要があります 例: % ./script Neapolis Yokogama Sidney Amsterdam Madrid Lviv Viden Denwer ["Lviv", "Viden", "Neapolis", "Sidney", "Yokogama", "Amsterdam", …

3
コードゴルフ:英語を解析してKnights and Knavesの論理問題を解決する
バックグラウンド ビルとジョンの2人がいます。そのうちの1人は常に真実を語る騎士であり、もう1人は常に嘘をつく悪魔です。あなたは誰が騎士であり、誰が悪党であるかを知りません。それから、各人はだれが騎士で、だれが騎士であるかについてのいくつかの声明を言います。この情報を使用して、誰が騎士で誰が悪党であるかを結論付けなければなりません。 騎士とKnavesロジックの問題は Booleen代数に基づいています。人が言う言葉はブーリアンの充足可能性の問題を形成します。knaveのステートメントは常にfalseでなければならず、他のKnightのステートメントは常にtrueでなければなりません。 ジョンは「私はどちらもナイフであり、ビルはナイフだ」と言います。ジョンが騎士だった場合、この声明は間違っているので、彼は騎士になることはできません。もし彼が悪党で、ビルが騎士なら、最初の部分が真実だと思っていたとしても、この声明はまだ間違っているでしょう。だから、ジョンは悪魔です。 チャレンジ あなたの挑戦は、各人によって作られた声明のリストを取り、誰が悪党で誰が騎士であるかを把握する、可能な限り最短のプログラムを書くことです。カバーする詳細がたくさんあるので、この問題は3つのセクションで説明されています。 入力 入力は2行で、その後に改行が続きます。各行には、文字の1つの名前、コロン、その人が言ったいくつかの文が続きます。一人が騎士である場合、彼の文章はすべて真実になり、すべてのナイフの文章は偽になります。文の最初の文字は常に大文字で、すべての文はピリオドで終わります。以下に例を示します。 Joe: Both I am a knight and neither Steve is a knave nor I am a knave. Steve: Joe is a knave. Either Joe is a knight or I am a knight. 解析 各文は、少なくとも1つの句で構成されます。各句には、いくつかの項目のいずれかが含まれています(できれば、私の表記法を理解できます)。 both [clause] and [clause] either [clause] or …

27
発音可能な単語を生成する
課題は簡単です。 単語を生成します。 仕様: Wordは発音可能でなければなりません。 これは、「子音と母音の交代」と定義されています。 子音は、次の文字のいずれかです。 bcdfghjklmnpqrstvwxz 母音は、次の文字のいずれかです。 aeiouy Wordはランダムに生成する必要があります。 単語には、すべての子音と母音を含めることができる必要があります。(bcdf子音やaei母音だけに使用することはできません。) Wordには10文字を含める必要があります。 最短のコード(文字数)が優先されます。

6
ランダムボーグルボードの生成
文字/スペースの4x12グリッドを生成します。 各ダイスは、ランダムに選択された場所に1回だけ表示されます。場所は、サイコロの一様なランダム順列に近似する必要があります。各ダイのランダムな(再び、ほぼ均一な)面を表示します。3文字のウィンドウで顔を左揃えにします。例えば、 A E A A E C D E D A Qu E E A H D 私が望むフォーマットの非ランダム化ボードです。末尾のスペースは許可されます。 サイコロ: A A E E G N E L R T T Y A O O T T W A B B J O O E H R T V W …
16 code-golf  boggle 

10
(最大)5つの素数の合計
テレンスタオは最近、ゴールドバッハの推測の弱い形式を証明しました!それを活用しましょう! 奇数の整数を指定すると、最大5つの素数の合計としてn > 1書き込みnます。好きなように入力して、好きなように出力してください。例えば、 def g(o): for l in prime_range(o+1): if l == o: return l, for d in prime_range(l+1): for b in prime_range(d+1): if l+d+b == o: return l,d,b for c in prime_range(b+1): for h in prime_range(c+1): if l+d+b+c+h == o: return l,d,b,c,h 入力として整数を取り、合計がである出力として整数のリストを返すSageコードですn。タオの定理により、これは常に終了します! 入力 奇数の整数n。入力方法を決めるのはあなたですが、それがおかしい場合は説明してください。 出力 むしろオープンエンド。リストを返します。文字列を出力します。1つ、いくつか、またはすべてをGimmeします。がらくたをスタック上(GS、Pietなど)または予測可能な方法で連続した(到達可能な)メモリブロック(BFなど)に置きます。後者の場合、出力について説明します。すべての場合において、返す/印刷する/ whathaveyouはn、6未満の部分からなる素数へのパーティションの単純な表現でなければなりません。 …
16 code-golf  math  primes 

30
数字のランダムシーケンスを生成する
ロックされています。この質問とその回答はロックされています。なぜなら、質問はトピックから外れていますが、歴史的に重要だからです。現在、新しい回答やインタラクションを受け入れていません。 チャレンジ: ランダムな数列を生成します。唯一の入力は、シーケンスの長さです。 純粋に機能的なソリューションのための追加のインターネットポイント。 注:これはコードトローリングの質問です。質問や回答を真剣に受け取らないでください。詳細はこちら。

13
アナログ時計の作成[終了]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 2年前に閉店。 ASCIIグラフィックを使用して、現在のシステム時刻をアナログ時計として表示するプログラムを作成します。クロックは、少なくとも時間と分のポインターを表示する必要があり、少なくとも5分の十分な解像度を持つ必要があります。 ディスプレイは必要に応じて小さくていものにすることができますが、表示される時間は簡単に認識できるはずです。 プログラムは継続的に実行し、そのステータスを更新する必要があります。システムが画面をクリアできる場合はそれを使用します。それ以外の場合は、状態が変化したときに時計を再描画するのに十分です。 時計の解像度が1分以上の場合、キャラクター数に-20%のボーナスが付与されます。

3
Vimクインを作成します![閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Code Golf Stack Exchangeのトピックになるようにします。 5年前に閉鎖されました。 ゴール: 少なくとも25文字のASCII文字を含むファイルをVimで作成して保存します。正確なキーストロークの作成時に、このファイルの保存に使用も(メモ帳に保存することなく)Windowsのメモ帳で同一の内容を生成しなければなりません。 ルール: この課題のために、Vimはコマンドモードで開き始めます。 マウスは許可されていません。 Shift される許可。Ctrl、altまたは任意の他の修飾キーがされていない許可します。 ソリューションは、Ubuntu 11.04またはOS X 10.6.7(2つのうちの1つ)に同梱されているデフォルトの「ターミナル」(非GUI)Vimで動作する必要があります。このVim .vimrcにはset nocompatible(その後に改行はない)のみが含まれ、それ自体がにあると仮定し~/.vimrcます。お使いのオペレーティングシステムがされたふりだけで Vimを開く前にインストールされています。 を除き、既存のファイルを開かないでください.vimrc。このパズルを解きながら作成したファイルは、必要に応じて何度でも保存して開くことができます。 Vimを閉じることができません! 開示、および閉鎖の考えられる理由:解決策がありません。
16 quine  vim 

4
マルコフ連鎖ビートボックスジェネレーター
先日考えたアイデア:定義済みの音のマルコフチェーンに従ってビートを作成します。 誰かがGoogle翻訳とドイツ語を使ってビートボックスを作成したことを覚えています(リンクをたどって、listenを押します)。 そのため、課題は、特定のチェーンからGoogle翻訳へのテキスト入力を作成することです。または、音符を使用して自分で演奏することもできます:)。 拍数の行、名前と確率のマトリックス表現を含む行を読み取るプログラムを作成できます(表現を選択できます)。 これらの3つの引数を使用して関数を作成することもできます。 例えば [入力] 20 pv zk bschk kkkk [[.1, .4, .5, 0.], [.3, .2, .3, .2], [0., .3, .2, .5], [.1, .8, .1, 0.]] [出力]のようなもの: pv zk bschk zk pv bschk zk pv zk bschk kkkk pv bschk zk bschk bschk bschk zk kkkk bschk 開始確率は、各ビートで同じです。 …

4
最優秀得点板
私はこの(現在は無効になっている)質問への回答を見ることに興味がありましたが、修正/改善されたことはありませんでした。 6面のBoggleダイス(この質問から盗まれた構成)が与えられたら、処理時間の2分で、どのボード構成が最高のスコアを可能にするかを決定します。(つまり、どの面でどのサイコロが最大のスコアリングワードプールを可能にするか?) 目的 コードは2分(120秒)以内で実行する必要があります。その時点で、自動的に実行を停止し、結果を出力する必要があります。 最終的なチャレンジスコアは、プログラムの5回の実行の平均Boggleスコアになります。 同点の場合、勝者はより多くの単語を見つけたアルゴリズムになります。 引き分けがある場合、勝者はより多くのアルゴリズムを見つけた方になります 長い(8+)単語をます。 ルール/制約 これはコードの挑戦です。コード長は関係ありません。 を参照してください 単語リストこのリンクをて(ISPELL "english.0"リストを使用-SCOWLリストにはかなり一般的な単語がありません)。 このリストは、任意の方法でコード内で参照/インポート/読み取りできます。 正規表現に一致する単語のみ ^([a-pr-z]|qu){3,16}$がカウントされます。(小文字、3〜16文字、quのみを単位として使用する必要があります。) 単語は、隣接する文字(水平、垂直、および斜め)をリンクして、1つの単語で1つのダイを複数回使用することなく、正しい順序で単語を綴ることによって形成されます。 単語は3文字以上でなければなりません。短い単語はポイントを獲得しません。 サイコロではなく、文字が重複してもかまいません。 ボードの片側からもう一方の側にエッジ/クロスオーバーする単語は許可されていません。 最終的なBoggle(チャレンジではない)スコアは、検出されたすべての単語のポイント値の合計です。 各単語に割り当てられるポイント値は、単語の長さに基づいています。(下記参照) 通常のBoggleルールは、他のプレイヤーが見つけた単語を控除/割引します。ここでは、他のプレイヤーが関与しておらず、見つかったすべての単語が合計スコアにカウントされるものとします。 ただし、同じグリッドで複数回見つかった単語は1回だけカウントする必要があります。 機能/プログラムは最適な配置を見つける必要があります。事前に定義されたリストを単純にハードコーディングすることはできません。 出力は、理想的なゲームボードの4x4グリッド、そのボードで見つかったすべての単語のリスト、およびそれらの単語に一致するBoggleスコアでなければなりません。 ダイ構成 A A E E G N E L R T T Y A O O T T W A B B J O …

8
コンパイル時にCRC32テーブルを計算する[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Code Golf Stack Exchangeのトピックになるようにします。 5年前に閉鎖されました。 CRC32のリファレンス実装は、実行時にルックアップテーブルを計算します。 /* Table of CRCs of all 8-bit messages. */ unsigned long crc_table[256]; /* Flag: has the table been computed? Initially false. */ int crc_table_computed = 0; /* Make the table for a fast CRC. */ void make_crc_table(void) { unsigned long c; …

10
Clojureでのゴルフのヒント
Clojureを使用したコードゴルフのヒントは何ですか? この質問の目的は、Clojureに固有の技術のリストを収集し、一般的なコードゴルフの問題で使用できるようにすることです。
16 code-golf  tips  lisp 

8
最短の辞書編集上最小の生成文字列
文字列は、の無限の繰り返しの部分文字列である場合に文字列をx 生成します。たとえば、を生成します。yyxabcbcabcab プログラムを作成して、入力を生成する最短の辞書編集上最小の文字列を見つけます。標準入力には1行のテキストが与えられます。生成文字列を標準出力に出力する必要があります。例えば: 入力 bcabcabca 出力 abc 最短のコードが優先されます。入力には文字a〜z(および必要に応じて末尾の改行)のみが含まれると想定できます。

5
2-SAT(ブール充足可能性)を解く
一般的なSAT(ブール充足可能性)問題はNP完全です。ただし、各句に2つの変数しかない2-SATはPにあります。2-SATのソルバーを作成します。 入力: 次のようにCNFでエンコードされた2-SATインスタンス。最初の行には、ブール変数の数Vと節の数Nが含まれています。次に、N行が続きます。各行には、句のリテラルを表す2つの非ゼロ整数があります。正の整数は指定されたブール変数を表し、負の整数は変数の否定を表します。 例1 入力 4 5 1 2 2 3 3 4 -1 -3 -2 -4 これは式コード(X 1又はX 2)及び(X 2またはX 3)及び(X 3またはX 4)とを(ないX 1かX 3)及び(ないX 2かX 4)。 式全体を真にする4つの変数の設定は、x 1 = false、x 2 = true、x 3 = true、x 4 = falseのみであるため、プログラムは1行を出力する必要があります。 出力 0 1 1 0 V変数の真理値を表します(x 1からx Vの順に)。複数のソリューションがある場合、それらの空でないサブセットを1行に1つずつ出力できます。解決策がない場合は、を出力する必要がありますUNSOLVABLE。 例2 …
16 code-golf 

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