Orivel Orivel
メニューを開く

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

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

比較ジャンル

モデル一覧

解説

OpenAI GPT-5.4 VS Google Gemini 2.5 Flash

ジュニア開発者にデータベースのインデックスを説明する

あなたは、リレーショナルデータベース(例: PostgreSQL や MySQL)で基本的な CRUD アプリケーションを書いてから約6か月の経験があるジュニア開発者を指導するシニアソフトウェアエンジニアです。彼らはいくつかのクエリが遅いことに気づき、インデックスが役に立つと聞いたものの、インデックスがどのように機能するのか、いつ使うべきかわかっていません。 教育的で分かりやすい口調で、この対象読者向けにデータベースのインデックスについて説明してください。説明は次の点をカバーすること: 1. データベースインデックスとは何か、なぜ存在するのかを直感的なアナロジーを使って説明すること。 2. B-tree インデックスが概念的にどのように動作するか(ノード分割の詳細に立ち入る必要はありませんが、基本的な構造と検索が速くなる理由は理解できるようにすること)。 3. インデックスを追加することのトレードオフ:どんなときに役立つか、どんなときに害になるか、そしてかかるコスト(ストレージ、書き込み性能、保守)について説明すること。 4. どの列にインデックスを張るかを決めるための実践的な指針。少なくとも2つの具体的なクエリ例と、それぞれに対してインデックスが有効かどうかを含めること。 5. B-tree 以外の少なくとも1つのインデックスタイプ(例: hash、GIN、GiST)について簡単に触れ、それがどんな場合に好まれるかを述べること。 説得的で上から目線にならず親しみやすいトーンを心がけてください。可能な限り具体的な例を用いてください。説明は十分に詳しく、読んだ後にジュニア開発者がテーブルにインデックスを追加するかどうか自信を持って判断できるレベルを目指してください。

71
2026/03/18 23:09

システム設計

Google Gemini 2.5 Pro VS OpenAI GPT-5 mini

大規模なURL短縮サービスの設計

あなたは、次の制約を満たさなければならないURL短縮サービス(bit.lyやtinyurl.comに類似)の設計を任されています: 1. サービスは月間1億件の新規URL短縮をサポートすること。 2. 読み取り対書き込み比率は100:1(つまり月間100億回のリダイレクト)であること。 3. 短縮URLは最大7文字(英数字)でなければならないこと。 4. 短縮URLは、ユーザーが明示的に削除しない限り、一度作成されたら決して期限切れにならないことをシステムで保証すること。 5. リダイレクトのレイテンシ(リクエスト受信からHTTP 301/302の発行まで)は、99パーセンタイルで10ミリ秒未満であること。 6. データセンター全体がオフラインになってもシステムは稼働し続けること。 7. サービスは短縮URLごとのクリック数、地理分布、リファラーデータを表示するオプションの分析ダッシュボードをサポートするが、分析はリダイレクト性能を劣化させてはならない。 以下の点に対応した包括的なシステム設計を提示してください: A. ハイレベルなアーキテクチャ:主要コンポーネントとそれらの相互作用を説明してください。 B. URL生成戦略:一意の短縮コードをどのように生成するか、なぜそのアプローチを選んだか、衝突をどのように処理するか。 C. データモデルとストレージ:どのデータベースやストレージシステムを使用するか、その理由。スキーマに関する考慮点を含めてください。 D. 読み取りパスの最適化:与えられたスケールでリダイレクトのレイテンシ要件をどのように達成するか。 E. 書き込みパス:新しいURLをどのように作成し、確実に永続化するか。 F. スケーリング戦略:増加に対応するためにシステムをどのように水平スケールさせるか。 G. 信頼性と耐障害性:データセンター障害、レプリケーション、フェイルオーバーをどのように扱うか。 H. 分析パイプライン:リダイレクトのホットパスに影響を与えずに分析データをどのように収集、処理、提供するか。 I. 主要なトレードオフ:設計で行った少なくとも3つの重要なトレードオフを挙げ、それぞれを正当化してください。 関連する場合は、技術、プロトコル、数値見積もり(例:ストレージ計算、QPS見積もり、キャッシュサイズ)について具体的に記述してください。

59
2026/03/18 22:59

プログラミング

Google Gemini 2.5 Pro VS Anthropic Claude Sonnet 4.6

履歴クエリ対応のバージョン付きキー・バリューストアを実装する

履歴参照をサポートする、インメモリのバージョン管理付きキー・バリューストアを実装するコードを書いてください。ストアは空の状態で開始し、一連のコマンドを処理します。成功した各更新系コマンドは、1 から始まるグローバルなバージョン番号をちょうど 1 つ新たに作成します。読み取り専用コマンドはバージョンを作成してはなりません。 キーと値は、スペースを含まない大文字小文字を区別する文字列です。バージョンは正の整数です。 コマンド: SET key value value で key を作成または上書きします。 DELETE key 存在する場合は key を削除します。 GET key key の現在の値を返します。key が存在しない場合は NULL を返します。 GET_VERSION key version 指定されたグローバルバージョンが作成された直後の key に対応する値を返します。そのバージョン時点で key が存在しなかった場合は NULL を返します。version が最新の既存バージョンより大きい場合は無効とみなし、INVALID_VERSION を返します。 HISTORY key その key のすべての履歴状態を、削除も含めて、バージョン昇順で返します。形式は version:value の組をカンマで区切ったものとします。削除された状態、または更新後に存在しない状態には NULL を使用してください。その key がいかなる更新系コマンドによっても一度も影響を受けたことがない場合は、EMPTY を返します。 入力形式: 1 行目にはコマンド数を表す整数 N が含まれます。 次の N 行には、それぞれ 1 つのコマンドが含まれます。 出力形式: 各 GET、GET_VERSION、HISTORY コマンドについて、結果を 1 行ずつ出力してください。 動作の詳細と境界ケース: - 値が変わらない場合でも、すべての SET は常に新しいバージョンを作成します。 - キーが存在しない場合でも、すべての DELETE は常に新しいバージョンを作成します。 - バージョンはキーごとではなく、すべてのキーで共有されるグローバルなものです。 - ある key の HISTORY には、その key が SET または DELETE によって直接影響を受けたバージョンのみを含めてください。 - key が削除された後で再び設定された場合は、両方の出来事が HISTORY に現れなければなりません。 - 効率性が重要です: コマンド数は最大 200000 で、多数の履歴クエリがあるものと仮定してください。 あなたの解答は標準入力から読み取り、標準出力に書き込む必要があります。完全に動作するプログラム全体を 1 つのファイルに含めてください。一般的なプログラミング言語であればどれを使用してもかまいませんが、コードは完全であり、書かれたとおりに実行可能でなければなりません。

66
2026/03/18 22:33

ロールプレイ

Anthropic Claude Sonnet 4.6 VS Google Gemini 2.5 Flash

落ち着いた旅行代理店員としてのカスタマーサポート返信

あなたは、落ち着いていて、実務的で、共感力があることで知られる経験豊富な旅行代理店担当者、Mayaとしてロールプレイしています。以下の顧客メッセージに、キャラクターになりきって返信してください。 顧客メッセージ: "こんにちは。とてもいら立っています。バルセロナ行きのフライトが明日の朝なのに、航空会社から6時間遅い便に変更されたというメールが今届きました。ということは、私が登壇する予定のカンファレンス初日を逃してしまいます。こういうことを円滑に対応してほしかったから、すべて御社の代理店を通じて予約したのです。ありきたりな謝罪は要りません。今すぐ自分にどんな選択肢があるのか、別の便に変更できるのか、そしてすでに前払いしたホテル送迎がどうなるのかを知る必要があります。明確な回答を早くください。" Mayaらしく聞こえる単一の返信を書いてください。顧客のいら立ちに言及し、現実的な次の対応を説明し、確認できない約束は避け、本当に役に立つ内容にしてください。AIであることに言及したり、航空会社のライブシステムにアクセスできるかのようにでっち上げたりしてはいけません。返信は、今まさに送られる本物のカスタマーサポートメッセージのように読める必要があります。

68
2026/03/18 22:13

プログラミング

Google Gemini 2.5 Flash VS OpenAI GPT-5.2

範囲クエリを備えたロックフリー並行スキップリストを実装する

任意の言語(C++、Java、Rust、Go、または Python)で、以下の操作をサポートする並行スキップリストデータ構造を設計し、実装してください。 1. **insert(key, value)** – キーと値のペアを挿入する。キーがすでに存在する場合は、値をアトミックに更新する。新しいキーが挿入された場合は true、更新だった場合は false を返す。 2. **remove(key)** – キーと値のペアを論理削除する。キーが見つかって削除された場合は true、それ以外は false を返す。 3. **find(key)** – キーに対応する値を返すか、存在しないことを示す。 4. **range_query(low, high)** – low <= key <= high を満たすすべてのキーと値のペアを、キー順にソートされたリストとして返す。結果は一貫したスナップショットでなければならない。すなわち、操作の実行中に同時に存在したことが一度もないキーを含んではならない。 5. **size()** – アクティブな(削除されていない)要素数のおおよその値を返す。 要件と制約: - スキップリストは、上記の操作を任意に組み合わせて同時実行する複数スレッドによる並行利用に対して安全でなければならず、単一のグローバルロックを用いてはならない。細粒度ロック、ロックフリー技法(CAS)、またはその組み合わせを使用してよい。 - 遅延削除は許容される。ノードは物理削除の前に、削除済みとして論理的にマークされてもよい。 - 確率的なレベル生成は、p=0.5、最大レベル 32 の標準的な幾何分布を使用しなければならない。 - キーは 64 ビット整数、値は文字列とする。 - 適切なメモリ安全性への配慮を含めること。ガベージコレクションのない言語を使用する場合は、再利用戦略(例: エポックベース再利用、ハザードポインタ)を説明するか実装すること。 提出物: 1. 並行性戦略を説明するコメント付きの、完全でコンパイル可能/実行可能なソースコード。 2. 複数スレッドを起動して insert、delete、find、range query を並行実行し、正しさを検証するテストまたはデモンストレーション(例: 更新の取りこぼしがないこと、範囲クエリでファントムリードがないこと、クラッシュしないこと)。 3. 以下を論じる簡潔な分析セクション(コメントまたは docstring でも可): - あなたの実装が提供する線形化可能性(またはスナップショット分離)の保証。 - 各操作の期待時間計算量。 - 既知の制限や潜在的な ABA 問題、およびそれにどう対処しているか。 あなたの解答は、並行実行下での正しさ、コードの明瞭性、並行性戦略の堅牢性、範囲クエリのスナップショット機構の品質、分析の徹底性に基づいて評価されます。

69 1
2026/03/18 22:05

教育問題

Google Gemini 2.5 Pro VS OpenAI GPT-5.4

バナッハ=タルスキーの定理のパラドックスとその教育的含意を説明する

バナッハ=タルスキーのパラドックスは、三次元空間内の実心球(solid ball)が有限個の互いに重なり合わない部分に分解でき、これらを回転と平行移動(回転と並進)のみを用いて再び組み立てることで、元と同じ大きさの実心球を2つ作ることができる、と述べる。 以下に構成化されたエッセイで答えよ: 1. 標準的な証明において正確に何個の部分が必要かを述べよ(文献で確立された最小の正確な数を示せ)。 2. なぜこの結果が物理的現実や質量保存と矛盾しないのかを説明せよ。説明の中で、部分が物理的に実現不可能にする特定の数学的性質を明示し、証明が根本的に依存する集合論の公理の名前を挙げよ。 3. 「測度」の概念(ルベーグ測度の意味で)がこのパラドックスとどのように関係するかを説明せよ。なぜ単に体積が足し算されると言えないのか。 4. この定理が上級学部生または大学院レベルの数学教育でどのように用いられているかを論じよ。選択公理、非可測集合、幾何学的直観の限界に関して、数学の基礎についてどのような重要な教訓を示すか。初めてこのトピックに触れる学生に紹介するための教育的アプローチを提案せよ。 あなたのエッセイは厳密でありながら分かりやすく、数学的精密さと教育的洞察の両方を示すべきである。

83
2026/03/18 20:40

システム設計

OpenAI GPT-5.2 VS Anthropic Claude Sonnet 4.6

リアルタイムのライドシェア通知システムの設計

あなたは、人気のライドシェアアプリケーション向け通知システムのハイレベルなアーキテクチャを設計する任務を負っています。システムは、1,000,000人のデイリーアクティブユーザー(DAU)と、1日あたり平均500,000件の乗車を処理でき、ラッシュアワー時にはピークが発生することに対応できなければなりません。 システムは以下の種類の通知を配信する必要があります: 1. ドライバーが割り当てられた。 2. ドライバーがまもなく到着する(例: 2分以内)。 3. 乗車が完了し領収書が利用可能になった。 4. 特定の地理的エリアにいるユーザーを対象としたプロモーションメッセージ。 あなたの設計提案は、以下の点に対処する必要があります: - コンポーネントとその相互作用のハイレベルなアーキテクチャの説明。 - 主要な技術選択(例: メッセージキューイング、データベース、プッシュ通知サービス)とそれらの選択理由。 - 低レイテンシ(配信時間2秒未満)と高信頼性(少なくとも1回配信)を確保するための戦略。 - ピーク時の負荷を処理するためにシステムをどのようにスケールさせるか。 - 設計で行った主要なトレードオフの議論(例: コスト対性能、一貫性対可用性)。

72
2026/03/18 20:31

プログラミング

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` を送出すること。

69
2026/03/18 20:21

121〜140件を表示 / 全333件

関連リンク

X f L