- 締切済み
好奇心で質問
四桁の数字を足す引く掛ける割るを用いて10を作る場合、1は0001と考えて、0001~9999までのうち10を作れるものは幾つでしょうか? 例1)5243の場合 5×(2+4)÷3=10なので該当。 例2)7020の場合 7×2=14また7+2=9また7-2=5また7÷2=3.5 となり、0は足しても変わらず、掛けると解は0になるので、全ての場合において該当せず。 うまく答えを出す方法があるか教えて下さい。 私は個人的にチャレンジしてみたのですが、ギブアップしました。 確率でいうと70パーセント以上は10を作れるはずです。 また、この問題は私が思いついたもので、答えは私も知りません。 自分で始めてドツボにハマりました。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
#1 です。 この問題は "make ten" と言って、古くからあるかなり有名な問題です。機械的にはしらみつぶしでもできますが、重複削除などを考えていくと結構厄介な問題です。また、何が重複であるかという問題もあります〈(1+2)+(3+4)と1+(2+3+4)は同じか違うか、とか。〉が、ある組み合わせで10ができるかできないかだけが問題であれば、既に解決済みな領域の問題ですので、ネット上で検索するといろいろと出てくると思います。 難しいけど可能なものとして有名なのに、1,1,5,8 があります。お暇な方は手作業で解いてみてください(^o^)
- ap10
- ベストアンサー率33% (453/1356)
No2です そんなに深く考えずに回答しました 個人的には「手計算で "楽" をするにはどうすればいいか」という事を念頭に置いて、先述の算出方法を挙げました ポイントは「4桁の数字を構成する数字の組み合わせ」です どういう事かといいますと、先に4つの数字を使って計算すると 10 になる数字の組み合わせを算出する事で、ダブりを無くすという事です 例えば、0/0/2/5 という四つの数字の組み合わせであれば、0+0+2x5=10 この四つの数字の構成であればどう並べ替えても10になる計算式が作れる(ハズ) そこで気になるのは、同じ数字でも複数の計算式で10が作れる場合があるという点 ご指摘のように例えば以下 2+2+2+4=10 (2+2)+2+4=10 (2+2+2)+4=10 <(2+2)+2>+4=10 ですが、「求めたいのは0~9999までの数字で計算して10になる数字は幾つあるか」ですので、一つの10になる計算式を見つけた時点で、他の計算式は考慮に入れる必要がないですよね ようは構成する数字の組み合わせ(例:2224)を算出し、その組み合わせで何通りの数字を作る事ができるか計算するという事になります(例:2,2,2,4であれば、4種類) と言いつつ、軽く三つの数字の組み合わせを考え始めた時点で面倒になりました 他の方法考えた方が良さそうです 甘かったみたいです、ごめんなさい
お礼
私もある程度、具体的な4つの数字を出してパターンを見つけていけば、そのうち何か解き方がひらめくだろうと思い、色々なパターンについて考慮してみたのですが、なかなか統一感のある分類法が思いつきませんでした。 地道に人海戦術で一人100ずつ確かめるとして、100人仲間を集めれば一日で終わるぞ、とか無駄な思考に落ちていきました…w でも、私の疑問にお付き合い頂き、ありがとうございます。 数学って難しい・・・
- kevin23
- ベストアンサー率37% (26/70)
どう計算すればいいかは分かりませんが、そのようなことを以前テレビでやっていて約半分くらいは作れると言っていたのを覚えています。
お礼
私がこれを始めたきっかけは、電車の切符にある4桁の数字から10を作るという、よくあるあの遊びです。 ふと、正解があるのはどのくらいの確率だろうと思い、軽い気持で計算を始めました。 質問をしてみて、けっこうこの遊びって有名なんだなって初めて知りました。 既に計算した人もたくさんいるのですね。 私は解けませんでしたが、でもなんだか嬉しいです。 ご回答ありがとうございました。
- ap10
- ベストアンサー率33% (453/1356)
取り合えず、面倒ですが手計算を行うとして構成される数字から導き出す方法があるかと 例えば、二つの数字だけで10を作れる組み合わせを出します すると 19/25/28/37/46/55 これらに0または1を加えてできる数字の構成を考えます 55であれば 0055/0505/0550/5005/5050/5500 1155/1515/1551/5115/5151/5511 0155/0515/0551/5015/5051/5501 1055/1505/1550/5105/5150/5510 の24種類 (上記のように1はかけてしまえば変化無し、0は足してしまえば変化無しなので、そのまま構成として含める事が可能) 同様の方法で先に挙げた二つの数字を元に構成される数字を挙げる事ができるかと思います 同様な手順で三つの数字で10が作れる構成・四つの数字で10が作れる構成を導き出すといいと思います ご質問者様が挙げたように「5243」の構成であれば24種類の数字の並びがあります まぁ最後に算出した数字でダブっているものがないか調べるのが面倒なので、そこだけソートが可能なソフトで計算させてはいかがでしょうか
お礼
ご回答ありがとうございます。 足し算に限って言えば、その方法で良いと思います。 掛け算も同じ方法で考えることが可能だと思います。0の扱いは変わりますが… でも実際には複数の演算の組み合わせなのです。四つの演算のうち、異なる三つを使う場合もあります。 そうなってくるとダブらずに考える頭のメモリが足りなくなってきます。 どのように整理すれば良いのでしょうか? 演算の組み合わせのパターンは4の3乗で64通り。 さらに()が加わると、 どこも囲まない、 左、中央、右の二つを囲む、 左、右の二つ両方を囲む、 左と右の三つを囲む、 左と右の三つを囲み、かつ、その内部の左もしくは右の二つを囲む、 の合計11パターンが考えられ、64×11=704通りということになります。 よって9999×704=7039296通りについて検証しなくてはなりません。 ただし、その中には順番を入れ替えれば、同じ式になってしまうものが含まれます。 また、 2+2+2+4=10 (2+2)+2+4=10 (2+2+2)+4=10 <(2+2)+2>+4=10 等の明らかに答えが同じになる式も別の扱いにしてしまっているので、それらを整理しなくてはなりません。 人間はコンピュータではありませんから、全てを検証するという方法は好ましくありません。 apt10さんの方法では、同じ式だけど、順番は異なるものが幾つあるか調べていく方法ということになると思うのですが、この先の展開はどうなるのでしょうか? 実際に検証する数はどこまで減らせるでしょうか?
アルゴリズムとしては例えばこのようなサイトをご覧ください。 http://www.phys.cs.is.nagoya-u.ac.jp/~watanabe/int/ten.html http://kaminari.scitec.kobe-u.ac.jp/PrologCafe/bench.html
お礼
ご回答ありがとうございます。 コンピュータ使えば早いですよね。 手作業でやると死にます。
お礼
数字の並び順は変わってしまいますが それでOKというルールでしたら 8÷(1-1÷5)=10 になりますね。 数学って神秘!