0から9までの数字のカードを使って整数を作ります。作れる整数の中で2番目に大きい数を求める問題です。ただし、問題文には整数が何桁であるかの記載がありません。ここでは、与えられた数字のカード全てを使うことを想定し、10桁の整数を作ることを仮定します。同じ数字は一度しか使えません。
2025/7/28
1. 問題の内容
0から9までの数字のカードを使って整数を作ります。作れる整数の中で2番目に大きい数を求める問題です。ただし、問題文には整数が何桁であるかの記載がありません。ここでは、与えられた数字のカード全てを使うことを想定し、10桁の整数を作ることを仮定します。同じ数字は一度しか使えません。
2. 解き方の手順
最大の整数を作るためには、各位に大きい数字から順に配置すれば良いです。従って最大の整数は9876543210となります。
2番目に大きい数を作るには、最大の数からできるだけ小さい変更を加える必要があります。一番小さい変更は、一番下の桁(一の位)を変更することです。
最大の数の1の位は0なので、次に大きい数は1となります。しかし、1は既に他の位で使用されているので、1の位を変更することはできません。
次に小さい変更は、10の位を変更することです。最大の数の10の位は1なので、次に大きい数は0となります。これは最大の数の1の位と同じ数字なので使用できません。1の位より大きい、2の位、3の位についても同様に検証する必要があります。
2番目に大きい数を作る別の方法としては、最大の数から一番小さい数を引くことが考えられますが、この場合、引く数によって答えが変わってくるため、正しい答えにたどり着くことは難しいと考えられます。
そこで、最大の整数を9876543210と仮定して、2番目に大きい整数を考えます。
2番目に大きい整数は、最大の整数とできる限り近い数字になります。
最大の数から少しだけ数字を変更することを考えます。
まず、1の位(0)を大きくすることを考えると、1が使えます。
しかし、同じ数字は使えないので、これはできません。
次に、10の位(1)を小さくすることを考えると、0になりますが、これも使えません。
100の位(2)を小さくすることを考えると、1、0となり、これらも使えません。
このように、大きい桁から見ていくと、9876543210と比べ、一箇所だけ変更して、2番目に大きい数を作るのは難しいです。
そこで、最大の数との差が小さくなるように、下位の桁から数字を入れ替えてみます。
最大の数は9876543210です。
この数字の10の位と1の位を入れ替えると、9876543201となります。
これは2番目に大きい数である可能性が高いです。
3. 最終的な答え
9876543201