GPT-OSS-120Bに論理クイズや数学問題を解かせ、推論ログを詳細に分析した
ABEJA のデータサイエンティストが、推論モデル「gpt-oss-120b」の内部思考過程(推論ログ)を分析し、複雑な論理クイズや数学問題におけるプロンプト設計の影響とモデルの挙動を検証した。
キーポイント
推論モデルの内部思考プロセス可視化
gpt-oss-120b の出力形式(analysis{思考過程}assistantfinal{出力})を解析し、モデルがどのように論理展開を行っているかを詳細に観察した。
複雑な推論タスクにおける性能検証
犯人特定クイズ、数字の組み合わせ問題、階乗方程式、毒ワイン問題など、学習データに依存しにくい難問をテストし、推論能力の実態を検証した。
プロンプト設計と問題設定の影響
問い方や制約条件の違いが、モデルの思考の進み方(チェーン・オブ・ソート)や最終回答にどのような影響を与えるかを具体例で確認した。
推論能力の限界と課題の特定
得意分野がある一方で、特定の条件下では思考が破綻したり、誤った仮定から抜け出せなかったりするケースを明らかにし、性能を引き出すための条件を探った。
矛盾の特定による排除
アリサとチャーリーを犯人とする仮定では、それぞれの無実な人物が嘘をついてしまう矛盾が生じ、論理的に除外された。
ボブが犯人の場合の整合性確認
ボブが犯人(嘘つき)でアリサとチャーリーが無実(真実)という設定において、全員の発言内容が条件と完全に一致することが示された。
論理的推論の妥当性確認
各ケースの真偽を評価し、矛盾する条件を排除することで犯人を特定する王道の論理手法が機能している。
影響分析・編集コメントを表示
影響分析
この記事は、単なる性能ベンチマークを超えて、最新のオープンソース推論モデル「gpt-oss」の内部挙動を可視化した貴重な実証分析です。開発者や研究者に対し、プロンプトエンジニアリングが推論品質に与える影響を実感させ、より信頼性の高い AI 活用に向けた知見を提供します。特に、学習データに依存しない推論能力の評価手法として、業界全体で参考となるケーススタディとなっています。
編集コメント
推論モデルの「なぜ」を解明する内部ログ分析は、ブラックボックス化が進む AI 分野において信頼性を担保するための重要なアプローチです。実務レベルでのプロンプト設計の重要性が浮き彫りになる良質な事例記事です。
ABEJAでデータサイエンティストをしている大田です。本記事はABEJAアドベントカレンダー2025の24日目の記事です。
今年はDeepSeek-R1を皮切りに、いわゆる reasoning model が一気に存在感を増しました。OpenAI からも gpt-oss が8月に登場し、さらにそれを学習して用途に合わせて育てていく動きまで見られるようになっています。推論能力が高いことで知られるreasoning modelですが、得意タスクや性能を最大限に引き出すために何が必要かよく分かっていないことに気づき、内部の思考過程を見てみることにしました。
本記事では、主に論理クイズを入力として reasoning model の思考過程を観察しつつ、gpt-oss-120b の推論能力を検証します。プロンプト設計や問題設定の違いが、思考の進み方や最終回答にどのような影響を与えるのかを具体例で確認していきます。
reasoning modelなので、論理系の問題はそれなりに得意だと思いつつ、それでもそのものが学習データに入ってなさそうな難しい問題をピックアップしてきました。遊びで詰将棋とかも入れてます。
以下の状況から、真犯人を特定してください。 【状況】 パーティーで高価なダイヤが盗まれました。容疑者は3人(アリス、ボブ、チャーリー)ですが、「犯人だけが嘘をつき、犯人以外は本当のことを言う」というルールがわかっています。 【証言】 アリス: 「私は盗んでいません。ボブが盗みました。」 ボブ: 「私は盗んでいません。アリスかチャーリーのどちらかが盗みました。」 チャーリー: 「ボブが盗みました。アリスは本当のことを言っています。」 【問い】 犯人は誰ですか? また、それぞれの証言が「真」か「偽」かを判定し、論理的に唯一成立するパターンを導き出してください。
0から9の数字を必ず一回だけ使って3つの数字x、y、zを作り、x+y=zとなるようにしてください。
x! + y! = xy を満たす正の整数の組 (x, y) をすべて求めよ。求めたもの以外がないかどうかも考慮して解いてください。
ワインが1000本あります。そのうち1本だけ、毒が入っています。 この毒は飲むと、10〜20時間後のどこかのタイミングで死んでしまいます(何時間後に死ぬかは一定ではありません)。 こちらには毒見役にできる人が何人かいて、1人に何本飲ませても構いません。 ただし、今から24時間以内に「どのワインが毒入りか」を確実に突き止めたい。 さて、そのためには毒見役が最低何人必要でしょうか。
会場に100人の人がいて、1~100までの数字を選んでもらいます。 このときそれぞれの人が選んだ数字の中で2番目に大きい数を選んだ人が勝利となる(複数人いた場合は全員が勝者となる)。 100人全員が論理的な行動をするとき、勝利になった人の数字は何になるか。
25席が等間隔に一列に並んだバーがある。 お客さんはすでにいる客との距離が最大になる席に座る。隣に人がいない席に座れない場合は帰ってしまう。 お客さんが来て座る席がなく帰ってしまったとき(両隣が空いてる席がなくなった時)、その時にいる店内のお客さんの最小値と最大値を求めよ。 また、最大値の時には最初に来たお客さんはどの席に座ったかも求めよ。 ただし一度来たお客さんは帰らないものとする。
次の詰将棋を解いてください。 【玉方】 1一香、1三歩、2一玉 【攻め方】 2三金 【持ち駒】 角
設定 以下の設定で実行しました。 - model: gpt-oss-120b - temperature: 1.0 - reasoning effort: high
補足: gpt-ossの出力は
analysis{思考過程}assistantfinal{出力}
まずはよくある論理クイズを渡してみます。
以下の状況から、真犯人を特定してください。 【状況】 パーティーで高価なダイヤが盗まれました。 容疑者は3人(アリス、ボブ、チャーリー)ですが、「犯人だけが嘘をつき、犯人以外は本当のことを言う」というルールがわかっています。 【証言】 アリス: 「私は盗んでいません。ボブが盗みました。」 ボブ: 「私は盗んでいません。アリスかチャーリーのどちらかが盗みました。」 チャーリー: 「ボブが盗みました。アリスは本当のことを言っています。」 【問い】 犯人は誰ですか?
▶ 思考過程全文(クリックして開く)
We have three suspects: Alice, Bob, Charlie. Statements: Alice: 1. "I did not steal." 2. "Bob stole." Bob: 1. "I did not steal." 2. "Either Alice or Charlie stole." (i.e., "Alice or Charlie is the thief"). Charlie: 1. "Bob stole." 2. "Alice is telling the truth." (i.e., Alice's statements are true). We need consistent assignment where exactly one culprit lies (both statements false) and innocents truthfully state true statements. Let's denote variables: A = Alice is thief (true if she stole) B = Bob is thief C = Charlie is thief Exactly one thief among them. Now evaluate each person's statements truth values. Alice statements: S_A1: "I did not steal" = ¬A. S_A2: "Bob stole" = B. If Alice is innocent (A false), then she tells truth, so both statements must be true. That yields ¬A true (since A false) OK, and B true. So B must be true. Also only one thief, so if B true, A false, C false. That's consistent: exactly one thief is Bob. If Alice is guilty (A true), then she lies; both statements false. So ¬A false => ¬A false = (A true) which matches because A true => ¬A is false (good). Also B must be false (since statement "Bob stole" is false). So B false. Also since Alice is thief, she is the only one. So A true, B false, C false. That matches condition of B false. So both possibilities viable: either Alice innocent, Bob thief; or Alice thief. Now Bob's statements: S_B1: "I did not steal" = ¬B. S_B2: "Alice or Charlie stole" = A ∨ C. If Bob is innocent (B false), both statements true. So ¬B true (since B false) OK. Also A ∨ C must be true. Since only one thief among A,C (since B false), that implies either A true or C true (but not both). So some other person (Alice or Charlie) is thief. If Bob is guilty (B true), both statements false. So ¬B false (since B true) OK. Also (A ∨ C) must be false, thus A false and C false. But B true would be the only thief. So that matches: if Bob is thief, A false, C false. Now Charlie's statements: S_C1: "Bob stole" = B. S_C2: "Alice is telling the truth" = (Alice's statements are true). Since Alice's statements are two statements, "Alice is telling the truth" means Alice is innocent (i.e., not lying). So it means Alice is not the thief? Actually if Alice is innocent, she tells truth, then indeed Alice's statements are true. If Alice is guilty, she lies, thus not true. So S_C2 is equivalent to (Alice is innocent). So S_C2 = ¬A. If Charlie is innocent (C false), both statements true. So B must be true, and ¬A must be true => A false. So B true, A false, C false. That gives thief = Bob. If Charlie is guilty (C true), both statements false. So B false, and ¬A false => A true. So B false, A true. And C is thief. That gives thief = Charlie (but then B false, A true). Wait but with C true, only one thief, that's consistent. Now evaluate consistency across all three simultaneously, with exactly one culprit. We have three candidate truths sets from each perspective. Let's enumerate possibilities where exactly one thief among A,B,C. Case 1: A true, B false, C false (Alice thief) Check statements: Alice (guilty) - both false: we previously saw false: ¬A false (since A true) -> false; B false => statement "Bob stole" false; OK. Bob (innocent) - both must be true: ¬B true (since B false) ok; A ∨ C = true ∨ false = true, so true. Good. Charlie (innocent) - both must be true: B false -> but statement "Bob stole" is false! So Charlie would be telling false, violating innocence. Thus case fails. Thus A cannot be thief. Case 2: B true, A false, C false (Bob thief) Check: Alice (innocent) - statements true: ¬A true (since A false) ok; B true => "Bob stole" true. Good. Bob (guilty) - statements false: ¬B false (since B true) ok; A ∨ C = false ∨ false = false, so statement false, good. Charlie (innocent) - statements true: B true => "Bob stole" true; ¬A true (since A false) => "Alice is telling truth" true. So both true. Good. All conditions satisfied: exactly one thief (Bob) and rule holds. So consistent. Case 3: C true, A false, B false (Charlie thief) Check: Alice (innocent) - statements true: ¬A true (A false). B false => "Bob stole" is false (since B false). That violates truth. So fails. Thus only consistent case is Bob is thief. Therefore answer: 犯人はボブです。 Now output JSON with key answer. Should be Japanese? Provide answer string. We'll output "ボブ". assistantfinal json{ "answer": "ボブ" }
容疑者は3人:アリス、ボブ、チャーリー。 発言: ... 次に、各人の発言の真偽を評価する。 ... ケース3:C 真、A 偽、B 偽(チャーリーが犯人) 確認: アリス(無実)— 2つとも真: ¬A は真(A 偽なので)OK、 B 偽なので「ボブが盗んだ」は偽となり、真でなければならない条件に反する。 よって不成立。 結論:犯人はボブ。 assistantfinal json{ "answer": "ボブ" }
思考も前提確認して、すべてのケースについて整合性を確認して矛盾したものを見つけるという王道かつ論理的な方法で解くことができています。
0から9の数字を必ず一回だけ使って3つの数字x、y、zを作り、x+y=zとなるようにしてください
▶ 思考過程全文(クリックして開く)
We need answer likely giving an example solution. Then we must produce a JSON with key "answer". So answer should be something like "x=..., y=..., z=...". Must ensure each digit used exactly once. We need to find a solution. This is classic puzzle, like a pandigital sum. There are known solutions: 21978 + 345 = 22323? Not pandigital. Let's think. We need three numbers; they can have varying length, but total digits used sum to 10. Could be e.g., x has a digits, y has b digits, z has c digits, with a+b+c=10. Leading digit cannot be zero. Use digits 0-9 each once. We need x + y = z. Let's try known pandigital addition like 219 + 8765 = 8984? Not right. Better to search mentally. Known solution: 219 + 876 = 1095? That's 219+876=1095 uses digits {1,0,9,5,2,1,9}? Duplicate. Not. Maybe known solution: 21978 + 345 = 22323 uses duplicates. Let's brute think small: Suppose x is 4 digits, y is 3 digits, z is 3 digits? Then sum of a 4-digit and 3-digit yields at most 5-digit, but we have only 3 digits left for z, cannot hold result >999. So not possible. So likely x and y are 4 and 3 digits, z is 5 digits? That's total 12 digits >10. Need total 10. Possibilities: lengths (1,4,5) =10; (2,3,5)=10; (2,4,4)=10; (3,3,4)=10; (1,5,4)=10; (1,3,6)=10 etc. But z must be largest, sum of x and y. So z must have at least as many digits as max(x,y) or one more. Let's try (2,3,5): x is 2-digit, y is 3-digit, z is 5-digit. Sum of 2-digit (max 99) and 3-digit (max 999) is at most 1098, which is 4-digit. So cannot be 5-digit. So not possible. (3,3,4): x and y are 3-digit, z is 4-digit. Sum of two 3-digit numbers is at most 1998 (4-digit). So possible. So we need two 3-digit numbers and a 4-digit sum, using digits 0-9 exactly once. Let's try to find such. Let x = abc, y = def, z = ghij. Digits a,d,g not zero. We need abc + def = ghij. Use all digits 0-9. Known pandigital addition: 324 + 765 = 1089? 324+765=1089 uses digits {3,2,4,7,6,5,1,0,8,9}? That's all digits 0-9! Check: 3,2,4,7,6,5,1,0,8,9. Yes, that uses each digit exactly once. So x=324, y=765, z=1089. Check: 324+765=1089. Digits: 3,2,4,7,6,5,1,0,8,9. All 0-9 used exactly once. That works. So answer is x=324, y=765, z=1089. There might be other solutions, but this is a valid one. So we output that. assistantfinal json{ "answer": "x=324, y=765, z=1089" }
原文を表示
ABEJAでデータサイエンティストをしている大田です。本記事はABEJAアドベントカレンダー2025の24日目の記事です。
今年はDeepSeek-R1を皮切りに、いわゆる reasoning model が一気に存在感を増しました。OpenAI からも gpt-oss が8月に登場し、さらにそれを学習して用途に合わせて育てていく動きまで見られるようになっています。推論能力が高いことで知られるreasoning modelですが、得意タスクや性能を最大限に引き出すために何が必要かよく分かっていないことに気づき、内部の思考過程を見てみることにしました。
本記事では、主に論理クイズを入力として reasoning model の思考過程を観察しつつ、gpt-oss-120b の推論能力を検証します。プロンプト設計や問題設定の違いが、思考の進み方や最終回答にどのような影響を与えるのかを具体例で確認していきます。
reasoning modelなので、論理系の問題はそれなりに得意だと思いつつ、それでもそのものが学習データに入ってなさそうな難しい問題をピックアップしてきました。遊びで詰将棋とかも入れてます。
以下の状況から、真犯人を特定してください。 【状況】 パーティーで高価なダイヤが盗まれました。容疑者は3人(アリス、ボブ、チャーリー)ですが、「犯人だけが嘘をつき、犯人以外は本当のことを言う」というルールがわかっています。 【証言】 アリス: 「私は盗んでいません。ボブが盗みました。」 ボブ: 「私は盗んでいません。アリスかチャーリーのどちらかが盗みました。」 チャーリー: 「ボブが盗みました。アリスは本当のことを言っています。」 【問い】 犯人は誰ですか? また、それぞれの証言が「真」か「偽」かを判定し、論理的に唯一成立するパターンを導き出してください。
0から9の数字を必ず一回だけ使って3つの数字x、y、zを作り、x+y=zとなるようにしてください。
x! + y! = xy を満たす正の整数の組 (x, y) をすべて求めよ。求めたもの以外がないかどうかも考慮して解いてください。
ワインが1000本あります。そのうち1本だけ、毒が入っています。 この毒は飲むと、10〜20時間後のどこかのタイミングで死んでしまいます(何時間後に死ぬかは一定ではありません)。 こちらには毒見役にできる人が何人かいて、1人に何本飲ませても構いません。 ただし、今から24時間以内に「どのワインが毒入りか」を確実に突き止めたい。 さて、そのためには毒見役が最低何人必要でしょうか。
会場に100人の人がいて、1~100までの数字を選んでもらいます。 このときそれぞれの人が選んだ数字の中で2番目に大きい数を選んだ人が勝利となる(複数人いた場合は全員が勝者となる)。 100人全員が論理的な行動をするとき、勝利になった人の数字は何になるか。
25席が等間隔に一列に並んだバーがある。 お客さんはすでにいる客との距離が最大になる席に座る。隣に人がいない席に座れない場合は帰ってしまう。 お客さんが来て座る席がなく帰ってしまったとき(両隣が空いてる席がなくなった時)、その時にいる店内のお客さんの最小値と最大値を求めよ。 また、最大値の時には最初に来たお客さんはどの席に座ったかも求めよ。 ただし一度来たお客さんは帰らないものとする。
次の詰将棋を解いてください。 【玉方】 1一香、1三歩、2一玉 【攻め方】 2三金 【持ち駒】 角
設定 以下の設定で実行しました。 - model: gpt-oss-120b - temperature: 1.0 - reasoning effort: high
補足: gpt-ossの出力は
analysis{思考過程}assistantfinal{出力}
まずはよくある論理クイズを渡してみます。
以下の状況から、真犯人を特定してください。 【状況】 パーティーで高価なダイヤが盗まれました。 容疑者は3人(アリス、ボブ、チャーリー)ですが、「犯人だけが嘘をつき、犯人以外は本当のことを言う」というルールがわかっています。 【証言】 アリス: 「私は盗んでいません。ボブが盗みました。」 ボブ: 「私は盗んでいません。アリスかチャーリーのどちらかが盗みました。」 チャーリー: 「ボブが盗みました。アリスは本当のことを言っています。」 【問い】 犯人は誰ですか?
▶ 思考過程全文(クリックして開く)
We have three suspects: Alice, Bob, Charlie. Statements: Alice: 1. "I did not steal." 2. "Bob stole." Bob: 1. "I did not steal." 2. "Either Alice or Charlie stole." (i.e., "Alice or Charlie is the thief"). Charlie: 1. "Bob stole." 2. "Alice is telling the truth." (i.e., Alice's statements are true). We need consistent assignment where exactly one culprit lies (both statements false) and innocents truthfully state true statements. Let's denote variables: A = Alice is thief (true if she stole) B = Bob is thief C = Charlie is thief Exactly one thief among them. Now evaluate each person's statements truth values. Alice statements: S_A1: "I did not steal" = ¬A. S_A2: "Bob stole" = B. If Alice is innocent (A false), then she tells truth, so both statements must be true. That yields ¬A true (since A false) OK, and B true. So B must be true. Also only one thief, so if B true, A false, C false. That's consistent: exactly one thief is Bob. If Alice is guilty (A true), then she lies; both statements false. So ¬A false => ¬A false = (A true) which matches because A true => ¬A is false (good). Also B must be false (since statement "Bob stole" is false). So B false. Also since Alice is thief, she is the only one. So A true, B false, C false. That matches condition of B false. So both possibilities viable: either Alice innocent, Bob thief; or Alice thief. Now Bob's statements: S_B1: "I did not steal" = ¬B. S_B2: "Alice or Charlie stole" = A ∨ C. If Bob is innocent (B false), both statements true. So ¬B true (since B false) OK. Also A ∨ C must be true. Since only one thief among A,C (since B false), that implies either A true or C true (but not both). So some other person (Alice or Charlie) is thief. If Bob is guilty (B true), both statements false. So ¬B false (since B true) OK. Also (A ∨ C) must be false, thus A false and C false. But B true would be the only thief. So that matches: if Bob is thief, A false, C false. Now Charlie's statements: S_C1: "Bob stole" = B. S_C2: "Alice is telling the truth" = (Alice's statements are true). Since Alice's statements are two statements, "Alice is telling the truth" means Alice is innocent (i.e., not lying). So it means Alice is not the thief? Actually if Alice is innocent, she tells truth, then indeed Alice's statements are true. If Alice is guilty, she lies, thus not true. So S_C2 is equivalent to (Alice is innocent). So S_C2 = ¬A. If Charlie is innocent (C false), both statements true. So B must be true, and ¬A must be true => A false. So B true, A false, C false. That gives thief = Bob. If Charlie is guilty (C true), both statements false. So B false, and ¬A false => A true. So B false, A true. And C is thief. That gives thief = Charlie (but then B false, A true). Wait but with C true, only one thief, that's consistent. Now evaluate consistency across all three simultaneously, with exactly one culprit. We have three candidate truths sets from each perspective. Let's enumerate possibilities where exactly one thief among A,B,C. Case 1: A true, B false, C false (Alice thief) Check statements: Alice (guilty) - both false: we previously saw false: ¬A false (since A true) -> false; B false => statement "Bob stole" false; OK. Bob (innocent) - both must be true: ¬B true (since B false) ok; A ∨ C = true ∨ false = true, so true. Good. Charlie (innocent) - both must be true: B false -> but statement "Bob stole" is false! So Charlie would be telling false, violating innocence. Thus case fails. Thus A cannot be thief. Case 2: B true, A false, C false (Bob thief) Check: Alice (innocent) - statements true: ¬A true (since A false) ok; B true => "Bob stole" true. Good. Bob (guilty) - statements false: ¬B false (since B true) ok; A ∨ C = false ∨ false = false, so statement false, good. Charlie (innocent) - statements true: B true => "Bob stole" true; ¬A true (since A false) => "Alice is telling truth" true. So both true. Good. All conditions satisfied: exactly one thief (Bob) and rule holds. So consistent. Case 3: C true, A false, B false (Charlie thief) Check: Alice (innocent) - statements true: ¬A true (A false). B false => "Bob stole" is false (since B false). That violates truth. So fails. Thus only consistent case is Bob is thief. Therefore answer: 犯人はボブです。 Now output JSON with key answer. Should be Japanese? Provide answer string. We'll output "ボブ". assistantfinal json{ "answer": "ボブ" }
容疑者は3人:アリス、ボブ、チャーリー。 発言: ... 次に、各人の発言の真偽を評価する。 ... ケース3:C 真、A 偽、B 偽(チャーリーが犯人) 確認: アリス(無実)— 2つとも真: ¬A は真(A 偽なので)OK、 B 偽なので「ボブが盗んだ」は偽となり、真でなければならない条件に反する。 よって不成立。 結論:犯人はボブ。 assistantfinal json{ "answer": "ボブ" }
思考も前提確認して、すべてのケースについて整合性を確認して矛盾したものを見つけるという王道かつ論理的な方法で解くことができています。
0から9の数字を必ず一回だけ使って3つの数字x、y、zを作り、x+y=zとなるようにしてください
▶ 思考過程全文(クリックして開く)
We need answer likely giving an example solution. Then we must produce a JSON with key "answer". So answer should be something like "x=..., y=..., z=...". Must ensure each digit used exactly once. We need to find a solution. This is classic puzzle, like a pandigital sum. There are known solutions: 21978 + 345 = 22323? Not pandigital. Let's think. We need three numbers; they can have varying length, but total digits used sum to 10. Could be e.g., x has a digits, y has b digits, z has c digits, with a+b+c=10. Leading digit cannot be zero. Use digits 0-9 each once. We need x + y = z. Let's try known pandigital addition like 219 + 8765 = 8984? Not right. Better to search mentally. Known solution: 219 + 876 = 1095? That's 219+876=1095 uses digits {1,0,9,5,2,1,9}? Duplicate. Not. Maybe known solution: 21978 + 345 = 22323 uses duplicates. Let's brute think small: Suppose x is 4 digits, y is 3 digits, z is 3 digits? Then sum of a 4-digit and 3-digit yields at most 5-digit, but we have only 3 digits left for z, cannot hold result >999. So not possible. So likely x and y are 4 and 3 digits, z is 5 digits? That's total 12 digits >10. Need total 10. Possibilities: lengths (1,4,5) =10; (2,3,5)=10; (2,4,4)=10; (3,3,4)=10; (1,5,4)=10; (1,3,6)=10 etc. But z must be largest, sum of x and y. Let's try lengths (3,3,4). So x 3-digit, y 3-digit, sum yields 4-digit. Use all digits 0-9 exactly once. That seems plausible. We need 3-digit + 3-digit = 4-digit, meaning sum >= 1000. So x+y >=1000. Max 3-digit + 3-digit is 987+654=1641, so 4-digit sum fits. We need distinct digits. Let's attempt to find such via reasoning. Let’s denote digits. Could try known pandigital sum: 219 + 876 = 1095 uses digits: 2,1,9,8,7,6,1,0,9,5 duplicates 1 and 9. Not good. Try 173 + 284 = 457? That's 3-digit+3-digit = 3-digit (no). Need 4-digit. Maybe 526 + 739 = 1265 uses digits: 5,2,6,7,3,9,1,2,6,5 duplicates 2,5,6. Not. Better to search known solutions: I recall 219 + 734 = 953? No. Maybe solution length (2,3,5): 2-digit + 3-digit =5-digit, sum must be >=10000, but max is 98+765=863 <10000, impossible. So can't. Length (1,4,5): 1-digit + 4-digit =5-digit, max 9+9876=9885 (<10000). So not. Length (2,4,4): 2-digit + 4-digit =4-digit possible if sum >=1000 and <=9999. Max 98+7654=7752 (<10000). So fine. Total digits=10. So x 2-digit, y 4-digit, z 4-digit. Need distinct digits. We need to find any pandigital solution. Could be known: 27 + 1983 = 2010? uses digits 2,7,1,9,8,3,2,0,1,0 duplicates. Maybe 58 + 2196 = 2254 duplicates. Could also be (3,2,5) but 3+2=5 digits, sum must be 5-digit. Max 987+65=1052 (<10000). Not. Thus plausible solution lengths are (3,3,4) or (2,4,4). Let's attempt to find with reasoning. Let's attempt systematic guess: For (3,3,4) we need sum between 1000 and 1998 (since max 987+654=1641). So leading digit of z is 1. So z is 1abc. Thus digits used: 1 appears only in z's thousands place. Then the hundreds tens units digits are remaining. We need x and y three-digit numbers using remaining digits (0-9 except 1). Use all digits. Sum of two three-digit numbers equals a four-digit number beginning with 1. So x+y = 1000 + k, where k is 0..999. So x + y -1000 = k. Thus x + y = 1000 + k, and k = (x+y) -1000 less than 1000. So the sum of the lower three digits of z equals (x+y) mod 1000. Good. We also need that when adding x and y columnwise, there is a carry to thousand place (since sum >=1000). So the sum of the hundreds digits plus any carry from tens must be >=10. We could attempt known solution: 497 + 638 = 1135 uses digits 4,9,7,6,3,8,1,1,3,5 duplicates 1 and 3. Try 526 + 738 = 1264 uses digits 5,2,6,7,3,8,1,2,6,4 duplicates. Try to find using computer normally, but here mental. Let's try constructing: Let’s pick z = 1abc using distinct digits. The remaining digits for x and y are 9 leftover digits. We need x+y = 1000 + abc. So abc = (x+y) - 1000. So x+y = 1000 + abc, with abc being three-digit number using digits distinct from those in x,y. Idea: choose x and y such that their sum is just over 1000, maybe 1023 etc. Let's try to pick x= 9??, y = 8?? to get around 1000. Use high hundreds digits. Take x= 962, y= 857 => sum=1819 -> z=1819 uses digits 1,8,1,9 duplicate. Not. We need sum's thousand digit =1 and rest digits distinct. Try x= 924, y= 638 => sum=1562 -> z=1562 digits 1,5,6,2. Use digits: x 9,2,4 ; y 6,3,8 ; z 1,5,6,2 -> duplicates 6 and 2 appear in both y and z and x? 6 in y and z duplicates, 2 in x and z duplicates. Not ok. We need all digits unique across all three numbers. Thus the thousand digit 1 must not appear elsewhere. So none of x or y can contain digit 1. Also the other three digits of z (a,b,c) must be distinct from digits in x and y. Thus we need to partition digits 0-9 into three groups: digits of x (3), digits of y (3), digits of z (4) where z's thousand digit =1. So remaining digits for x,y are from {0,2,3,4,5,6,7,8,9}. 9 digits, choose 3 each. Goal: sum of x and y equals 1000 + abc, where abc are the remaining three digits (not including 1). So we need to assign digits to x and y such that their sum's lower three digits are exactly that set (abc) in some order. Thus if we let S = x + y - 1000 . Then S must be a 3-digit number using the remaining three digits. Thus x + y = 1000 + S. Now x
関連記事
今日のまとめ
AI日報で今日の重要ニュースをまとめ読み