クイズ「数字の数」
こんな問題を出されたので考えてみた。
「この文の中には0がm個、1がn個、2がp個、3がq個、……、9がw個ある」という文が成立するような数字の組み合わせを求めなさい。
たとえば、「0が0個ある」という文にしてしまうと、その文の中には『0が0個』と書かれているので、0は2個あることになり、文が成立しない。つまり、「○がいくつ」の「○が」の部分と「いくつ」の部分で使われる数字をどちらも数字としてカウントする、ということ。ちょっとややこしい。
この問題を、プログラムに解かせたいという。どんなプログラムを書いたらよいだろうか。
私はプログラムの書き方は考えられないが、この問題自体は解くことができた。私のたどり着いた解答は以下に示すが、これ以外にも解はあるかもしれない。
自分で考えてみたいという人はこれより下の文字列は見なかったことにするように。
解答例:
「この文のなかには、0が1個、1が7個、2が3個、3が2個、4が1個、5が1個、6が1個、7が2個、8が1個、9が1個ある。」
0 1 2 3 4 5 6 7 8 9 1 7 3 2 1 1 1 2 1 1