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

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

7
10進数表現の期間
単一の正の整数nを取り、1 / nの 10進表現の期間を返す関数を作成します。 テストケース: 1 -> 1 # 1/1 = 1.0000...... = 1._0 2 -> 1 # 1/2 = 0.5000...... = 0.5_0 3 -> 1 # 1/3 = 0.3333...... = 0._3 7 -> 6 # 1/7 = 0.14285714.. = 0._142857 13 -> 6 14 -> 6 123 -> 5 …

6
Perl 6でのゴルフのヒント
Perl 6でゴルフをするための一般的なヒントは何ですか?少なくともPerl 6に固有のゴルフ問題全般のコーディングに適用できるアイデアを探しています(たとえば、「コメントの削除」は答えではありません)。回答ごとに1つのヒントを投稿してください。 Perl 6はPerl 5ではないため、この質問は重複していません。Perl 5ゴルフのヒントのほとんどは、Perl 6には当てはまりません。
16 code-golf  tips 

24
追加番号ゲーム
追加番号ゲーム 2つの整数パラメーター、 整数パラメーターまたは整数変数、開始番号、および最大反復カウントを取る関数/プログラムを作成します。コードは、次のゲーム例を実行して新しい数字を作成し、数字が1桁左になるまで繰り返します。例えば。 3 7 2 = (3 + 7) & (7 + 2) = 10 9 1 0 9 = (1 + 0) & (0 + 9) = 1 9 1 9 = (1 + 9) = 10 1 0 = (1 + 0) = 1 基本的に、個々の数字を取得してその数字を隣に追加し、次の追加の結果も追加します。 最大反復回数は、無限ループを保護するためのものであり、最大値に達すると、コードは最後の5つの数値ステップをダンプする必要があります。同じ出力は、1桁に達して終了するときに発生するはずです。発生したステップが5つ未満の場合は、有効な数値のみを出力します。 出力はStep: …
16 code-golf 

27
組み込みのベース変換なしでベース10からベース2に変換します
背景: 事前に作成されたベース変換関数を使用せずに、ベース10の数値をベース2に変換する割り当てが与えられました。インポートされたライブラリも使用できません。 問題点: 入力文字列を基数10(10進数)から基数2(バイナリ)に変換します。事前に作成された基本変換コード/関数/メソッド、またはインポートされたライブラリを使用することはできません。これはcode-golfであるため、バイト単位の最短回答が優先されます。 入力は-32768〜32767のいずれかになります(コードに符号バイト処理を含める)
16 code-golf  number 

3
英語の数字電卓
チャレンジ 口頭形式で入力を行い(方程式を話すように)、口頭形式で出力する(数値を話すように)計算機を作成します。 ルール 電卓は次のことができるはずです。 加算、減算、乗算、除算 マイナス100万から100万の間のオペランドを処理します マイナス10億から10億の出力を処理します 入力で小数点を処理し、出力に正しく配置します 10進出力を100分の1の位まで処理し、必要に応じて丸めます 小数の結果を生成するすべての演算は、最も近い100分の1の位に丸める必要があります(出力フォーマットと同じ)。 入力が誤ってフォーマットされているか、0で除算されているためにプログラムが失敗する場合、出力「E」(エラー)をレポートします。基本的に、プログラムは悪い入力ではクラッシュしません。それはお粗末な計算機だからです。 電卓がされ許可されますが、必須ではありませんオペランドまたは出力がその境界を逃れたときにエラーを報告します。これは問題を単純化することを意図していますが、私に同意しない場合は、エラーを報告することなく、より大きなオペランドと出力を正しく処理できる計算機を作成してください。 操作のオペランドがオペランドに定義された境界を超えた場合に「E」を出力します。 出力が出力用に記述された範囲を超えた場合の出力「E」 プログラムが大文字小文字の区別と空白をどのように処理するかは、イギリス英語またはアメリカ英語の選択と同様、ゴルファーに任されています。1 上記の機能を既に実装している言語またはライブラリを使用して計算機の実装をバイパスするプログラムは、勝利の資格がありません。 勝者 最も少ない文字数のプログラムが勝ちます。 例 入力: 2 + 2 出力: 4 入力: 21ポイント5マイナス1ポイント5 出力: 20 入力: 1-2 出力:負の1 入力: 5 x 5 出力: 25 入力: 25を5で割った 出力: 5 入力: 2 + 2-5 x 5を負のゼロ点5で除算 出力: 10 …
16 code-golf 

16
「パスワード」という単語が見つかるまでブルートフォース文字の組み合わせを実行するプログラムを作成する
プログラムはすべての文字の組み合わせ(小文字でも大文字でも構いません)をアルファベット順に印刷する必要があります。で始まりa、最後に印刷される組み合わせはである必要がありますpassword。 出力は次のようになります。 a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ... passwora passworb passworc password

9
ポータル迷路の最短経路
あなたの目標は、使用してランダムな10×10のマップを作成するプログラムを書くことで0、1、および2、および左上から右下に最短経路を見つける、と仮定します: 0は芝生のフィールドを表します。誰でも歩くことができます。 1は壁を表します。壁を越えることはできません。 2はポータルを表します。ポータルに入ると、マップ内の他のポータルに移動できます。 仕様: 左上の要素と右下の要素は0でなければなりません。 ランダムマップを作成するとき、すべてのフィールドは、0になる確率が60%、1になる確率が30%、2になる確率が10%でなければなりません。 隣接するフィールドで移動できます(斜めのフィールドでも)。 プログラムは、マップと最短パスのステップ数を出力する必要があります。 右下のフィールドにつながる有効なパスがない場合、プログラムはマップのみを出力する必要があります。 任意のリソースを使用できます。 最短のコードが優先されます。 ステップの計算: ステップは実際の動きです。フィールドを変更するたびに、カウンターをインクリメントします。 出力: 0000100200 0100100010 1000000111 0002001000 1111100020 0001111111 0001001000 0020001111 1100110000 0000020100 9

24
異なるベースで6 * 9を計算する
次の結果を出力します(これは、2から36までのベースで6 * 9を計算した結果です)。文字が大文字であることを確認し、乗算自体がすべての行に出力されます。 6 * 9 = 110110 6 * 9 = 2000 6 * 9 = 312 6 * 9 = 204 6 * 9 = 130 6 * 9 = 105 6 * 9 = 66 6 * 9 = 60 6 * 9 = 54 6 * …

30
RegExpsなしで数字以外で文字列を分割する最短プログラム
編集:あなたがLispを使用している場合、バイト数をカウントする際の下部にいくつかのガイドラインを示しました。 目的:正規表現を使用せずに、文字列を数字以外で分割し、各文字列の数字のみで構成される配列を返す最短の関数を作成します。先行ゼロは各文字列に含まれます。 現在の順位(カテゴリで区切られた): C / C ++ / C#/ Java: 68(C).... GolfScript / APL / J: 13(APL) その他すべて: 17(Bash、使用tr)、24(Ruby) ルール: (長さをおaびします) 形式は、単一の文字列引数を持つ関数でなければなりません。配列を適切に返すために必要な場合は、最大2つの引数を追加できます(たとえば、sh / csh / DOS Batchは返すために追加の変数参照を必要とします)。 主要な関数宣言はカウントされず、他の標準ライブラリのインポートもカウントされません。「#include」、「import」、および「using」はカウントされません。他のすべてが行います。これには、 `#define`sとヘルパー関数が含まれます。混乱させて申し訳ありません。カウント/カウントしないもの(Cスタイルの構文で記述されている)についての有用なガイドとしてこれを参照してください。//合計にはカウントされません。ただし、 // Javaの標準ライブラリの半分のように、非自明。 #include <stdio.h> import some.builtin.Class //カウントされません、上記を参照 #define printf p //合計にカウント / *その他のプリプロセッサディレクティブなどがカウントされます。* / int i = 0; //カウント someFunction(); //カウント …
16 code-golf  string 

10
2つのクリーチャー間の戦いをシミュレートする
Brave Code Golferさん、ようこそ!今日、あなたはゴブリンとエルフの間の素晴らしい戦いの真っstand中に立つでしょう! goblin attacks elf! elf dodges! elf attacks goblin! elf hits goblin for 13 damage! goblin has 37 health left. goblin attacks elf! goblin hits elf for 1 damage! elf has 49 health left. elf attacks goblin! elf hits goblin for 19 damage! goblin has 18 health left. …

28
シフトするドット
プログラムは、ドットと改行が後に続くいくつかのスペースを印刷する必要があります。スペースの数は、0 <x <30で定義されたドットのx位置です。 すべての新しい行はターンです。プログラムは30ターン実行されます。プログラムはランダムなx位置から始まり、毎ターン、定義された領域内にとどまりながら、この位置を1ずつ左または右にランダムにシフトします。ターンごとに、ドットの位置を1ずつ変更する必要があります。 スコアは文字数です。すべての印刷行が正確に30文字(および改行)で構成されている場合、10のボーナスポイントを獲得できます。プログラムが定義された領域の中央にランダムに留まる傾向がある場合、50のボーナスポイントを獲得できます。 編集: 50のボーナスポイントは、ドットを中央に引き寄せることを目的としています。たとえば、ドットがx = 20にあり、66%が左に、33%が右に移動する可能性がある場合に適用されます。これは開始点から独立している必要があり、左右のパーセント値を動的に変更することによってのみ発生します。 いかなる種類の入力も許可されず、出力は実行中のコンソール上になければなりません! 理解を深めるために、javaで読みやすい例を示します。これにより、スコア723が得られます。 public class DotJumper{ public static void main(String[] args){ int i = (int)(Math.random()*30); int max = 29; int step = 1; int count = 30; while(count>0){ if(i<=1){ i+=step; }else if(i>=max){ i-=step; }else{ if(Math.random() > 0.5){ i+=step; }else{ i-=step; } } …
16 code-golf 

6
コードゴルフ:同じ種類のものが触れないようにナッツを混ぜます
入力: 入力は、(あなたの言語での)ナッツのランダム化された配列であり、可能なナッツが続きます。プログラムには、整数コードなど、さまざまな種類のナットを表す方法が必要です。プログラムは、ナットのあらゆる構成のあらゆるサイズの配列を処理できる必要があります。 可能なナット: Kola nut Macadamia Mamoncillo Maya nut Mongongo Oak acorns Ogbono nut Paradise nut Pili nut Pistachio Walnut 出力: 出力は、同じ種類の隣接するナットがないような方法でソートされた配列でなければなりません。これが不可能な場合、出力は空の配列でなければなりません。 入力例(簡略化): ["walnut", "walnut", "pistachio"] 出力例: ["walnut", "pistachio", "walnut"] ソリューションは、偶然に一意になるまでアレイを単純にシャッフルしない場合があります。採用されるソートは決定論的なものでなければなりません

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 …

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