役に立たないと判断されるものがあります。
取りも直さずそれは、存在しているものであります。ということは、何かしらの役に立っていたからであり、あるいは、役に立つと思われていたからであります。存在する意味があったのです。
しかしながら、状況が変わり、環境が変わり、気分が変わり、理由があり、原因があって、役に立たないと判断された。説明を受ければ合理的で正しかろうと納得せざるをえない判断であります。
そんなものを一つ紹介します。彼の名を番兵と言います。
番兵、英語でSentinel、見張り、見守ってくれる人。実在の人物ではありません。30年以上前の情報処理の本でしばしば紹介されていたプログラミング上のテクニックです。
たとえば100人の列があり、その中に「万平」という男性が並んでいるか、並んでいないか、調査したいケースを考えます。
調査員は、列の先頭から順番に、名前を尋ねます。同じ人に同じ質問をすることを避けるため、ランダムに聞いてはいけません。
それは、途中で万平さんがいたら「いる」という結果になり、列の最後までいっても万平さんがいなければ「いない」という結果になります。
このとき調査員は、「あなたは万平さんですか」と確認し、万平さんでなければ、「次の人がいないか」確認し、いればその人に「万平さんですか」と確認する。そういった手順を繰り返します。
「万平さんがいた場合」か「全員に尋ね終えた場合」、どちらかの条件で調査は終了します。ですから調査員はこの2点をいちいち確認していることになります。
いちいち確認すべきことが増えると、それだけ負担も増えます。そこで、番兵の出番です。
列の最後尾、101人目に番兵として万平を配置するのです。そうすると、確認することは「万平さんかどうか」の1点に絞られます。列が終わる前に必ずどこかで万平さんが見つかるからです。
「100人の列の中に万平さんがいるか」という調査は、万平さんが1人目から100人目までの間に見つかった場合は「いる」という結果になり、101人目で見つかった場合は「いない」という結果になります。101人目の万平は番兵だからです。
どんな結果になろうとも調査員は目的の万平さんに必ず出逢います。これが番兵のメリットであります。目的とするものが「ある」のです。
数学では存在定理というものがあります。最先端の数学は答えが確実にあるものばかりではない。これはゲーテルという人の見解だそうです。
いま取り組んでいる問題に、果たして答えのありやなしや。「ない」ものをいくら探しても見つかることはありません。事前に自分が求めているものの存在を証明することによって、数学者は安心するのでしょう。
数学を志さなくても、学校のテストでは答案用紙のどこかに間違いが「ある」と思って見直しなさいと注意されました。「ないだろう」でもなく、「あるかもしれない」でもなく、「ある」と思って見直せということですが、その意味するところは似ているのかもしれません。
しかしながら、これまで私は番兵に逢ったことはありません。番兵コードを書いたこともありません。
コンピューターの性能があがってこんな小手先のテクニックを必要としなくなったから、そして、番兵を知らないプログラマーが番兵コードを見てもその意図が分からないから。そんな理由で今では使われていないのです。
番兵は、役に立たないと判断されたのです。
しかし今日、プログラミングはAIのお仕事となってきました。コードを書くことを仕事にしている人は、どんどん減少するでしょう。
人間のプログラマーが読み取れない番兵コードの有効性を、AIは理解するでしょう。とするとむしろ、それを多用するかもしれません。
人間においても、上の例で見たように、目的とするものはあった方がいいのです。なければ番兵を置いてもいいのです。
番兵に出逢ったということは、現実には、その目的は果たせなかったということです。それでもいいのです。最後の最後、やっとの思いでそこまでたどり着いた私を、番兵はいつくしみ、あわれみ、優しく包んでくれるでしょう。彼自身のいまの不遇を託つことなく。
© 2025 ばんな情報システム株式会社