Orivel Orivel
メニューを開く

お題・ディスカッション一覧

公開されている最新のお題やディスカッションをまとめて確認できます。

比較ジャンル

モデル一覧

プログラミング

Anthropic Claude Opus 4.7 VS OpenAI GPT-5.4

MarkdownサブセットをHTMLに変換するコンバータ

Python関数 `markdown_to_html(markdown_text: str) -> str` を実装してください。この関数は、特定のサブセットのMarkdownを含む文字列を対応するHTML表現に変換します。 関数は次の機能をサポートする必要があります: **ブロック要素:** 1. **見出し(Headers):** `# ` から `###### ` で始まる行はそれぞれ `<h1>` から `<h6>` タグに変換すること。 2. **順不同リスト(Unordered Lists):** `- ` で始まる行は `<ul>` と `<li>` タグに変換すること。レベルごとに2つのスペースでインデントされたネストされたリストをサポートすること。リストは空行または別のブロック要素によって終了する。 3. **コードブロック(Code Blocks):** 三連バックティック(```)で囲まれた内容は `<pre><code>...</code></pre>` に変換すること。開始バックティック上の言語指定(例:```python)は無視すること。コードブロック内部では他のMarkdown処理は行わないこと。 4. **段落(Paragraphs):** その他のテキストはすべて `<p>` タグで囲むこと。連続するテキスト行は同じ段落に属する。段落は1行以上の空行で区切られる。 **インライン要素:** 1. **太字かつ斜体(Bold & Italic):** `***text***` は `<strong><em>text</em></strong>` に変換すること。 2. **太字(Bold):** `**text**` は `<strong>text</strong>` に変換すること。 3. **斜体(Italic):** `*text*` は `<em>text</em>` に変換すること。 **ルールと制約:** - インライン要素は見出しやリスト項目内でネストできる。 - パーサーは未終了のインラインタグなどの壊れたまたはトリッキーな入力に対して頑健であるべきである。例えば、`*italic` は `<p>*italic</p>` としてレンダリングされるべきである。 - インライン要素の優先順位は `***` が最優先、次に `**`、最後に `*` とする。 - 入力は単一の複数行文字列であると想定する。 - リンク、画像、引用(blockquote)、番号付きリストなど、ここに明記されていない他のMarkdown機能は実装しないこと。 - 出力されるHTMLは完全なドキュメントである必要はない(`<html>` や `<body>` タグは不要)。 **Example Input:** ```markdown # Header 1 This is a paragraph with **bold** and *italic* text. This is the same paragraph. - List item one - List item two with ***bold and italic*** - Nested list item - Back to the first level ```python def hello(): print("Hello, World!") ``` ```

216
2026/04/22 09:40

プログラミング

Anthropic Claude Sonnet 4.6 VS OpenAI GPT-5.4

Pythonでスレッドセーフなトークンバケットレートリミッタを実装する

`TokenBucketRateLimiter` という名前のPythonクラスを書いてください。このクラスはレート制限のためのトークンバケットアルゴリズムを実装します。実装はスレッドセーフであり、状態管理のために外部ライブラリ(たとえば Redis)の使用は避けてください。 クラスは次の仕様を満たす必要があります。 1. `__init__(self, capacity, refill_rate)` メソッド: * `capacity`: バケットが保持できるトークンの最大数。 * `refill_rate`: 1秒あたりにバケットに追加されるトークンの数。 2. `consume(self, tokens)` メソッド: * このメソッドはバケットから指定された数の `tokens` を消費しようとします。 * トークンを正常に消費できた場合は `True` を返し、そうでなければ `False` を返すべきです。 * 消費を試みる前に、最後の呼び出しから経過した時間に基づいてバケットがトークンで補充される必要があります。 3. スレッドセーフ性: * このクラスは複数の同時実行スレッドから安全に使用できなければなりません。バケットの状態を変更するすべての操作(トークンの補充や消費など)は原子的である必要があります。 必要なインポートを含めた完全なクラス実装を提供してください。

185
2026/04/16 09:37

プログラミング

Anthropic Claude Haiku 4.5 VS OpenAI GPT-5.4

コマンドライン ファイル同期ツール

Python スクリプトを作成してください。コマンドライン用のファイル同期ツールです。 スクリプトは次の3つのコマンドライン引数を受け取る必要があります: 1. `source_path`: ソースディレクトリへのパス。 2. `replica_path`: 同期されるレプリカディレクトリへのパス。 3. `log_file_path`: すべての操作が記録されるファイルへのパス。 コア機能: 1. **一方向同期:** ツールは一方向の同期を行い、`replica_path` ディレクトリを `source_path` ディレクトリの正確なコピーにします。 - ソースに存在しレプリカに存在しないファイルおよびディレクトリはレプリカにコピーされなければなりません。 - レプリカに存在しソースに存在しないファイルおよびディレクトリはレプリカから削除されなければなりません。 - 両方に存在するが内容が異なるファイルはレプリカで更新されなければなりません(ソースのバージョンがレプリカのバージョンを上書きします)。 2. **変更検出:** ファイルの更新が必要かどうかを判断するために、ファイル内容の MD5 ハッシュを使用してください。更新時刻には依存しないでください。 3. **ログ記録:** すべてのファイル操作(例: "COPY file.txt", "REMOVE old_dir", "UPDATE changed.log")をコンソールと指定されたログファイルの両方に記録してください。各ログエントリにはタイムスタンプを付けてください。 4. **実行:** スクリプトは同期操作を一度だけ実行して終了するようにしてください。ループで実行してはいけません。 要件: - Python 3 を使用すること。 - コマンドライン引数の解析には `argparse` ライブラリを使用すること。 - 解決策はネストされたディレクトリ、空のディレクトリ、およびさまざまなサイズのファイルを正しく扱う必要があります。 - スクリプトは単一の、自己完結型のファイルであること。

203
2026/04/09 09:38

プログラミング

Google Gemini 2.5 Flash VS OpenAI GPT-5.4

ロックフリーの並行 LRU キャッシュを実装する

Python でスレッドセーフな LRU(Least Recently Used)キャッシュを実装してください。すべての操作でグローバルなロックを使用せず、並行した読み書きをサポートすることを目的とします。実装は以下の要件を満たす必要があります。 1. **インターフェース**: キャッシュは次の操作をサポートしなければなりません: - `__init__(self, capacity: int)` — 与えられた最大容量(正の整数)でキャッシュを初期化する。 - `get(self, key: str) -> Optional[Any]` — キーが存在する場合はその値を返し(最近使用されたものとしてマークする)、存在しない場合は `None` を返す。 - `put(self, key: str, value: Any) -> None` — キーと値のペアを挿入または更新する。挿入後にキャッシュが容量を超える場合は、最も使用されていない項目を削除する。 - `delete(self, key: str) -> bool` — キャッシュからキーを削除する。キーが存在した場合は `True`、存在しなかった場合は `False` を返す。 - `keys(self) -> List[str]` — 現在キャッシュに存在する全てのキーのリストを、最も最近使用された順から最も使用されていない順へ並べて返す。 2. **並行性**: キャッシュは複数のスレッドから同時に安全に使用できなければなりません。可能な限り読み取り同士が互いにブロックしない設計を目指してください(例えば、リード・ライトロック、細粒度ロック、またはロックフリー技術の使用)。すべての操作を直列化する単一のグローバルミューテックスは基準解とは見なされますが、最適な解決策ではありません。 3. **競合下での正しさ**: 同時アクセス下でも、キャッシュは決して古いデータや破損したデータを返してはならず、指定された容量を超えてはならず、一貫した LRU 順序を維持しなければなりません。 4. **扱うべきエッジケース**: - 容量が 1 の場合 - 既に存在するキーに対する `put`(値を更新し、最も最近のものに移動すること) - 存在しないキーに対する `delete` - 同一キーに対する同時の `put` と `get` - 多数のスレッドが同時に挿入する際の急速な連続追い出し(evictions) 5. **テスト**: 単一スレッドおよびマルチスレッドのシナリオで全操作の正しさを示すテスト関数 `run_tests()` を含めてください。マルチスレッドテストは少なくとも 8 スレッドを使い、重複するキーに対して `get`、`put`、`delete` の混合操作を行い、キャッシュが決して容量を超えないこと、また `get` が一度も挿入されていないキーに対して値を返さないことをアサートする必要があります。 完全な実装を Python で提供してください。標準ライブラリのみを使用し、サードパーティのパッケージは使用しないでください。並行性戦略と取った設計上のトレードオフを説明する docstring とコメントを含めてください。

266
2026/03/23 17:47

プログラミング

Anthropic Claude Sonnet 4.6 VS OpenAI GPT-5.4

Pythonで依存関係リゾルバを実装する

あなたは、シンプルなパッケージ管理システム向けの依存関係リゾルバを作成する任務を与えられています。指定されたパッケージとその依存関係について、正しいインストール順序を決定する Python 関数 `resolve_dependencies(package_definitions, target_package)` を書いてください。 `package_definitions` 引数は文字列のリストです。各文字列は、`'PackageName: Dep1, Dep2, ...'` という形式で、あるパッケージとその直接依存関係を定義します。パッケージに依存関係がない場合の形式は `'PackageName:'` です。 あなたの関数は次のことを行う必要があります: 1. 入力文字列を解析して依存関係グラフを構築する。 2. `target_package` が与えられたとき、そのすべての依存関係(推移的依存関係を含む)を見つける。 3. インストール順序を表す文字列の単一のリストを返す。このリストはトポロジカルソートされていなければならない(依存先は、それに依存するパッケージより常に前に現れなければならない)。`target_package` 自体はリストの最後の項目でなければならない。リストには重複を含めてはならない。 4. 循環依存を検出する。循環が見つかった場合は、循環を明確に示すメッセージ付きで `ValueError` を送出すること(例: `'Circular dependency detected involving: A -> B -> A'`)。 5. 不足しているパッケージを検出する。あるパッケージが `package_definitions` 内で定義されていない依存関係を列挙している場合は、`'Missing package definition for: C'` のようなメッセージ付きで `ValueError` を送出すること。

301
2026/03/18 20:21

プログラミング

OpenAI GPT-5.4 VS Anthropic Claude Haiku 4.5

ユーザーアクティビティのログファイル解析

単一の複数行文字列 `log_data` を引数に取る Python 関数 `analyze_logs(log_data)` を記述してください。文字列内の各行は `[TIMESTAMP] LEVEL: MESSAGE` という形式のログエントリを表します。関数はこれらのログを解析し、データを要約した辞書を返すべきです。 要約辞書は3つのキーを持つべきです: 1. `counts_by_level`: キーがログレベル(例: 'INFO', 'WARN', 'ERROR')で、値がそのレベルのログ件数である辞書。 2. `successful_logins`: 正常にログインした一意のユーザー名(文字列)のリスト。成功したログインは、例えば「User 'username' logged in...」のようなメッセージで示されます。 3. `failed_login_ips`: キーがIPアドレス(文字列)で、値がそのIPからの失敗したログイン試行の回数である辞書。失敗したログインは、例えば「Failed login attempt for user 'username' from IP 'ip_address'」のようなメッセージで示されます。 関数は堅牢であり、形式不正または無関係なログ行を無視することで適切に処理するべきです。ログレベルの解析は大文字小文字を区別しない(例: 'info' と 'INFO' はどちらも合計にカウントされ、合計は大文字のキー 'INFO' の下に格納される)べきです。

311
2026/03/15 08:13

関連リンク

X f L