4桁の数字を10にする証明

このエントリーをはてなブックマークに追加
1元数学嫌い
師曰く、
「4桁の異なる数字は、各々の数字を
足したり、引いたり、かけたり、割ったりすることによって、
必ず10になる。」

例)
4637
6÷3=2
2×7=14
14−4=10

これを証明できるプログラムが出来る?
2キリサキ キョウコ:03/09/17 00:01
 
>>1
3000
1048
5元数学嫌い:03/09/17 00:07
やべ
アフォ扱いされてる…
ゼロ以外の数字で…
数学板かシミュレート板逝け
2467
>>7
7-2=5
6-4=2
2*5=10
出来るぞ!
2679
1500通りくらい?
11デフォルトの名無しさん:03/09/17 00:31
切符の数字で10を作れ(Dat落ち)
http://pc2.2ch.net/test/read.cgi/tech/1052999322/
2*(4-6+7)=10
(2/4)*6+7=10
2/(4/6)+7=10

2+6-7+9=10
2+6-(7-9)=10
2*6+7-9=10
13デフォルトの名無しさん:03/09/17 00:56
全ての組み合わせを計算させちゃうってのはダメ?
一回目の変数組み合わせ4×3通り
一回目の演算子4通り
二回目の変数組み合わせ3×2通り
二回目の演算子4通り
三回目の変数組み合わせ2×1通り
三回目の演算子4通り
このなかで10になる組み合わせがあることを確かめる。
これを一万回繰り返す。
合計92160000の計算をすれば済む。君のパソコンで一秒当たり1M回計算できたとすれば90秒で結果が出るよ。簡単じゃん。ソフト作ってバグ出しが済めば。
>やべ
>アフォ扱いされてる…

おかしな日本語のスレタイからして
1がアフォなのは自明
16デフォルトの名無しさん:03/09/17 10:28
8とか9にはできないのか
17 :03/09/17 10:34
総当りで証明って言われると、なんかぼったくりバー的な感じを受ける俺。
18デフォルトの名無しさん:03/09/17 10:51
これって累乗使ってもいいんじゃ無いっけ
19デフォルトの名無しさん:03/09/17 10:52
>>1
おまえのせいで、眠れなくなった
20デフォルトの名無しさん:03/09/17 12:59
プログラム板で証明という話になると、当然総当りが出てくるよね。
数式的な証明を必要とするならば、数学板に立てるべし。

この問題の解は「プログラミングの宝箱」という本のラストに載っている。
アルゴリズムとデータ構造について、サンプルを使いながら説明し、
最終章で今までのアルゴリズムやデータ構造を使ってこのパズルを解く構成。
面白いから一読の価値あると思うよ。
21デフォルトの名無しさん:03/09/17 16:53
1111
22デフォルトの名無しさん:03/09/17 16:56
>>21
Σ使えば出来る
>>21
異なる4この数字です

でさ、これって、数学的に偶然なの?証明可能?
答えろ
24デフォルトの名無しさん:03/09/17 17:02
ん? つか、実際問題として、>>1の話ってほんとなの?
25デフォルトの名無しさん:03/09/17 17:03
26デフォルトの名無しさん:03/09/17 17:07
総当りPGだけど、割り切れることも考慮にはいるんじゃないの?
だからもう少し複雑になると思う。
6789はどうよ?
>>27
ムナパックン だな
29デフォルトの名無しさん:03/09/17 17:28
9!/8! + 7-6 = 10
何それ!Σ( ̄Д ̄;)
インチキや!
31デフォルトの名無しさん:03/09/17 17:34
_| ̄|○
>>29
それのどこが10になるんだ??
33デフォルトの名無しさん:03/09/17 17:41
>>32
9! = 9*8*7*6*5*4*3*2*1
8! =   8*7*6*5*4*3*2*1
9! / 8! = 9

9+7-6=10

確かに、プログラム上で階乗を!で表すことはないからこんな式書いた俺が悪いです_| ̄|○
>>33
いやいやw 解説サンクスコ
>>14のリンク先だと、四則演算しかしてないから、
そういう裏技まで使えば案外全部のパターンでいけるのかもね。。
10C4 で210通り試せばいいんですね?
四則演算以外あり?
そんなもん判定無理や・・・
>>36
いや、全パターンやろうと考えるから無理ぽであって、
10になった時点でやめればいいんだから、
パターンはそれほど無限には近くないのではないかな?
>>27
(7+8)*(6/9)
39デフォルトの名無しさん:03/09/17 17:48
>>34>>36
いや、>>1だと四則演算のみっぽいので>>33は反則かと
じゃあ5789はどうよ?
簡単な奴をコンピュータに排除させて、あとは人間がやる

1 + 9 + (任意) * 0 = 10
とか
全部足して10の組み合わせとか
42デフォルトの名無しさん:03/09/17 17:50
>>40
9/(8-5)+7
43デフォルトの名無しさん:03/09/17 17:51
1230
>>43
ゼロ無しだっつーの
30/(1+2)=10
3789はどうよ?
4789はどうよ?
>>43
3^2+1+0=10
(3+7)*(9-8)
4+7-8+9
誤)4+7-8+9
正)4+7+8-9
まず>>14で試してみたら?
50デフォルトの名無しさん:03/09/17 18:12
1.任意の異なる2つの数a,b(<10)で生成可能な数の集合Xを求める。
2.Xともうひとつの異なる数c(<10)で生成可能な数の集合Yを求める。
3.更にYともうひとつの異なる数c(<10)で生成可能な数の集合Zを求める。
4.Zの中に10があれば証明終わり。
51デフォルトの名無しさん:03/09/17 18:16
昔bitって雑誌に出てたよ。
どっかの大学でやらせたんだってさ。
ゼロがあったりぞろ目があった場合に駄目な場合があるそうな
52デフォルトの名無しさん:03/09/17 18:46
>>50
それは、「4つの数で10が作れる場合があるかどうか」の証明にしかならない予感
54デフォルトの名無しさん:03/09/19 02:20
暇つぶしにとりあえず作ってみた。
あってんのかな???

http://www.kenmon.net/4.html

>>54
OK ブラクラゲット
(´・∀・`)ヘー
証明対象問題が有限だから、
単純に全事象を試みるだけで、証明になるかと。

述語論理ってより命題論理だから、
Prologとか使えば、かなり一発じゃない?
58デフォルトの名無しさん:03/09/19 12:58
>>54
汚いけど、上手くやったな
60デフォルトの名無しさん:03/09/20 17:38
結局四則以外の ^ とか ! と () は、なしなの?
>>60

>>1
>足したり、引いたり、かけたり、割ったりすることによって

って書いてあるじゃん
62デフォルトの名無しさん:03/09/20 18:40
>>61
「殴ったりけったり」には、押したり踏んだり、
はたまた頭突きや噛み付きが含まれても特に不自然ではないから、
>>1 の表現は「加減乗除に限らない」と考えるべきかも。
使って良い演算が限定されていないから、何だって出来ると思うが。
極論すれば4つの数値を受け取り必ず10を返す演算子を想定する事もできる。

>>62
日本語を勉強しようね。
>>61-63
最近、日本語は乱れてるからな。
「ごはんとか食べたりしない?」=「ごはんを食べようではないか」という意味だったりするわけで・・・。
だから、>>1は4則演算限定という読み方も出来たりするわけだが?
2,6,9,1 が出来ない
四則演算だけで全部出来たから、四則演算限定で別にいいんじゃない?
あれ?やっぱ四則演算だけじゃできないかも・・・
68デフォルトの名無しさん:03/09/20 19:39
例えば7の字の曲がっている部分を無理矢理伸ばして1にして計算する、
なんていうのもルールとしてあり?
>>68
まあ、アリだろうな
7063:03/09/20 19:55
>>62
すまん。
今見て気がついた。
「殴ったりけったり」を「踏んだりけったり」と読んでた。
71デフォルトの名無しさん:03/09/20 22:58
+-*/だけなら(>14)のリンクで全部は無理なのがわかってる。
だから ^ ! ( ) もありにしよう
(^−^+)
73デフォルトの名無しさん:03/09/21 08:34
完全版(!?)
修正箇所
(a+b)/(c-d)のような、計算方法を追加

http://www.kenmon.net/4.html
7473:03/09/21 08:37
>>65
9-1=8
8/2=4
6+4=10
>>71
出来たよ。
75デフォルトの名無しさん:03/09/21 12:15
除算をするとき割り切れない場合はどうするんですか?
四捨五入? 切り捨て? それとも分数として計算?
>>75
そんな除算はボツだろ。
すまん、分数としてなら可だと思う。(無論最終的には、整数にならんとダメだと思うが。)
>>77
計算過程で分数になって最終的に整数になるなら
計算順序を変えれば分数は出ないはず
7976:03/09/21 13:17
分数同士で演算するような場合はどうかなぁ。1/4 + 3/4 とか。
まあ、4つの数字を10にする場合には出てこない気もするけど。
8079:03/09/21 13:19
間違えました。75です。

ちなみに友達は「切り捨て」でやっていました。
切捨てないとダメなら
「出来ない」が答えでしょう。
浮動小数点で計算すればいいだろ
>>82
誤差出るだろ
そんなことナイポ
>>84>>83へのレス?
だとしたら・・・
(((((( ;゚Д゚)))))ガクガクブルブル
>>14のページは浮動少数点使ってるようだが?
無理数にはならナイポ
89デフォルトの名無しさん:03/09/21 21:40
数学板にバカが来て迷惑です。
1/3 = 0.3333333...

ほれ、有理数で誤差が出る
>>90
でも *3 すると 1.0 になっちゃうんだよね
誤差で
9291:03/09/21 22:14
>>90
ちなみに,2進数で誤差が出る例を示さないとちょっと説明になってない
実際,1/3 は2進数でキリが悪い数字だが
>>92
めんどくさいもの
つーか、所詮1〜2桁同士の割り算ででた誤差なんか適当なところで四捨五入すりゃ全然問題ないだろ。

実用的に浮動小数点でやるか、分数をそのままの形で扱って数学的にきれいにまとめるかは、プログラマの腕と考え方だろ。
>>94
今回は計算順序を変えれば分数は出ませんよ
今回はって、あんた...。ここ一応 ム板 なんだが...。

個々の式にどう対応するかを議論してるわけじゃないと思たが...。

それとも、すべての組み合わせで分数がでないという事なのか ?
9795:03/09/21 22:54
>>96
この問題(今回)は計算順序を変えれば分数は出ませんよ
分数が出ない計算順序が存在しない場合は÷は使えません
仮想分数を作ればいいじゃん。分母と分子を内部に持った構造体とかさ。

>>97
確かめもせず、確証もなしに、よくそれだけ大口が叩けるもんだ。
実生活でもかなり忌み嫌われているんじゃないか、おまえ?
いくら匿名とはいえ、言い切るからには思い込みじゃなくて根拠を書けよ。
コミュニケーションってのは自分自身をだます事じゃねぇぞ。氏ね。

どうしても出来ると言い切るならば、1158を10にしてくれ。
>>98
10になるなら、分数の必要ない計算順序が絶対に存在するということじゃないの?
>>99
1158は10になるのだが、分数の必要ない計算順序を出してくれ、ということ。
なんなら1199でもいいぞ。
>>100
分数じゃないと出来なかった。
>>100
どちらの例も異なる4数ではないが?
>>100
10 = 8 / ( 1 - 1/5 )
10 = ( 1 + 1/9 ) * 9
なるほど
こういう例もあるのね
>>102
あのさあ、ばらばらでも分数を使わないと解けない数があるとは思わないのか?
この流れでその発言するとはアホだろ?
すまん、根拠を書かなきゃな。3478。
>>105
キタ━━━━━(゚∀゚)━━━━━!!!!
10 = ( 3 - 7/4 ) * 8
7/4=1.75
3-1.75=1.25
1.25*8=10
分数はいらん
108107:03/09/22 09:15
sage忘れ…
>>107
BigDecimalでやらないと駄目だな
doubleは2進数で格納されている
>>107
…ネタ?
98にあるとおり、仮想分数を使えばいいじゃん。
高々3回の演算しかないんだから、通分する必要なんてないし。
>>105
わかっててその例を後回しにしただろ。いけずめ(笑)
煽るのはどうかと思うが、活発になるのはいいことだな。
実は>>103>>106は自作自演なわけだが
>>113
違うんだけど、まぁどうでもいいと思ったり。
プログラミングの宝箱という本に、このパズルを解くプログラムが詳しい解説つきで載ってるよ。
>>114
実は私は>>103>>106>>113なわけだが
>>116
難しいことをするんじゃない、と思ったり
10071だった、
午前中つぶれた、うつだ
119デフォルトの名無しさん:03/09/22 13:41
あっ分数は扱わなかった、ん?まちがってるかもしれないな
120デフォルトの名無しさん:03/09/22 13:41
(|| ゚Д゚)ガーン!!
ちなみに9999はなかなか難しい。分数は使わないけど。
(9! / (9*8!) ) + 9 = 10
9998は四則演算で出来るだろ (^^;
9999もできるな
ひだりからそのままよんでね、
9+9/9+89*9+9/9
>>124
やべ、だめだ…
9+9/9+8
9*9+9/9
括弧使えよ
四則演算のみで、一度使った数字を使わずに、割り算は分数を考えないで(つまり簡単なほう)
7244通り
こんどこそ
で?
結局、>>73でいいのか?
俺は悪くないと思うが。
>>127
なにがどう7244通り?0000〜9999の中で、10ができる組み合わせの数?
数学板にバカボンが来て迷惑です。
おれは最初は足し算からはじめたが、最初は2ヶ月かかったね。四則演算の概念そのものが初めてのものだったからカルチャーショックを受けたよ。
その次に引き算を覚えたが、この時は2週間で覚えたよ。足し算で四則演算の基礎ができていたからね。
あといろんな計算を覚えたが、これ以降はほとんどの計算は1日で覚えたね。
通分も1日で覚えたよ。
ちょっと難しかったのは、やはり因数分解のような文字ばかりの計算だったよ。
>>131
九九も一日でつか
>>132
コピペにマジレス
>>133

64 名前:デフォルトの名無しさん[sage] 投稿日:02/06/20 22:11
おれは最初は足し算からはじめたが、最初は2ヶ月かかったね。四則演算の概念そのものが初めてのものだったからカルチャーショックを受けたよ。
その次に引き算を覚えたが、この時は2週間で覚えたよ。足し算で四則演算の基礎ができていたからね。
あといろんな計算を覚えたが、これ以降はほとんどの計算は1日で覚えたね。
通分も1日で覚えたよ。
ちょっと難しかったのは、やはり因数分解のような文字ばかりの計算だったよ。


65 名前:デフォルトの名無しさん[sage] 投稿日:02/06/20 22:16
>>64
九九も一日でつか
>>134
正直すまんかった
136134:03/09/22 18:57
>>135
ネタでした
137supermathmania ◆ViEu89Okng :03/09/23 17:03
4桁の数字を10にする証明:
nを4桁の数字としよう。
[log(n)/log(10)]*10/3=10
Qウザキタ━━━━━━(゚∀゚)━━━━━━ !!!!!
>>137
マジでそれで解けるの?
nの順序にもよるんじゃ???
>>139
1000 <= n <= 9999 なら成り立つ。
このlogの低って何だ?
2?e?10?
ていうか、成り立たないだろ
>>141
数学勉強しようね
logだけなら底はeだな
>>144
そういう話じゃないし、普通logと書けば常用対数じゃないのか?
>>144
何も書かなければ底を2にする分野もあるのだが。
底がeのときはln
おまいら、Qウザに釣られすぎ。
149デフォルトの名無しさん:03/09/23 20:51
ところで、「10」以外の数字の場合はどう?

漏れ conjecture : そのような整数は -3, 2, 3, 4, 10 のみである。

誰か証明できるか?
150マジシャン:03/09/23 22:02
4桁の数字を
あなたの思い浮かべた
数字にすることは出来ますか?
>>150
これはいかが?
計算方法は出ないけど…
苦情は受け付けたくありません…(^^;

http://www.kenmon.net/4th.html
>>151
いいかげん鬱陶しいぞ。氏ね
153151:03/09/24 01:26
>>152
こんなん作って、
とっくに氏んでます…
>>109,110
お前らこそネタ?
二進数で正確に表現できるから double で済むんだけど。
155デフォルトの名無しさん:03/09/24 11:49
>>154
ナゼ>>110がネタ?
156デフォルトの名無しさん:03/09/24 12:09
157151:03/09/24 12:32
>>156
不思議に思った、一市民…
>>154
必死だな
159supermathmania ◆ViEu89Okng :03/09/24 13:09
いい忘れていたが、[x]はxを越えない整数のうち、最大のものを表す。
例えば、[5]=5,[-5]=-5,[1.6]=1,[-1.6]=-2などが成り立つ。
160デフォルトの名無しさん:03/09/24 14:09
>>159
絶対値だったら、|じゃね?
>>160
ハァ?
>>161
突っ込む相手を間違えてないか?
>>162
ハァ?
5+5*5/5 と (5+5)*5/5 って等価と看做す?
>>164
好きにすれば
>>165 チミはどう思う?
>>166
何がしたいのかわからんから答えようがない。
したいようにしろ。
>>167
ハァ?
>>167
いやね、結果を表示したいわけなんだけど、外せる括弧は外したいわけよ。
>>164って括弧外すと計算順序違っちゃうけど答え同じっしょ?
同じと看做せば省略できるんだけど看做さないとなると冗長かなーなんて。
またおかしな奴が来た。
算数からやり直せよ。
同じ数字と決まってるなら、こんな計算式はいらない。
同じ数字じゃないなら、カッコつけたきゃ計算順通りにつけろ。
でも計算順序違うのに結果は同じってのは面白いと思った
>>169
*A/Aが入って残りの数字と演算子が同じものは全部同じと見なしていいかもな
>>160
ガウス記号だろ
>>154
一応突っ込んどくか

割り算したとき誤差が出て掛け算したときも誤差がでるから
見かけ上誤差がないように見えるの

IEEE754を嫁
まあアフォには読めんだろうが
>>174
たぶん154には理解できないと思う。
「この例でいけば、誤差がでないから問題ないじゃないか!」
という発言をするに100ペリカ
この例でいけば、誤差がでないから問題ないじゃないか!
>>176
クレジットカード番号書いてくれ。100ペリカ引き落としておくから
>>177がペリカ欲しいみたいだから
誰かK3(確保の3)を用意して
>>160
ガウス記号って言うんだよ
>>160
ガウス記号じゃないか?
>>181
二番煎じイクナイ
183デフォルトの名無しさん:03/09/26 01:06
>>160
ガウス記号じゃないか?
>>183
ネタは嫌いじゃないけど、ageるのはどうかと思うよ
1289

だれかといてくれ・・_| ̄|○
>>185
9*2*1-8
ごめん、アホな質問なのはわかってるんだけど
>1の条件で総当りしようとすると
9C4=126通りぽっちだよね?

もしあたってるなら・・
1234 1245 ....                6789
1235 1246
1236 1247
1237 1248
1238 1249
1239
と辞書式に書き出して皆で埋めていきたい。
(そもそも126通りがまちがってなかったら)
あほー
189187:03/09/26 10:21
それでいいと思うが
>>187
0は入らないんじゃ???
>>191
入っていないように見えるが
193デフォルトの名無しさん:03/09/26 12:14
しかも書いてあるやつが、どうやって10になったかかいとかないと意味ない

使ったVBA使ったならソースも公開してちょ
>>192
189のファイルを見てみ
つーかおまえらこの程度のプログラムも自分でかけないのか?
196デフォルトの名無しさん:03/09/26 20:16
>189
それじゃ7行に収まらないジャン。
>196
7行ってなんか意味あるの?

プログラムの宝箱という本にのってる証明というのを見てみたい。
綺麗な証明のしかたあるんかな?
198デフォルトの名無しさん:03/09/27 05:42
>197

「将軍様がそう仰いました」
これで万事OK
>>197
Prologを使う
数学的な証明が見たい
総当りなんてイヤン
>>200
Prologは総当たりになるかどうか分からないんだがな
条件の書き方による
202デフォルトの名無しさん:03/09/27 08:39
なにいってんだか(^o^)
203KingOfMath ◆p38EzHwbPY :03/09/27 09:09
200へ、数学的な証明を書くプログラム(それでできた証明を誰が読むのか?)を作れば数学的な証明の完成だ。
>>197
「プログラミングの宝箱」な。
総当りの方法が何通りか示されてるだけだぞ。
総当りは立派な数学的証明だが・・・
というか、あの本は証明なんて事を前提にしておらず、
こういったパズルをどのような方法を使えば解けるかを解説していると思われ。
アルゴリズムを紹介しながら、それを応用して色んなパズルを解くスタンスだったはず。
総当りだとあれじゃん、たまたま偶然結果的にそうなるんだからしゃーないじゃんとしか言いようが無いし。
なんか必然性というか、美しさというか、そう言うのが欲しいなぁ。

たとえば
1桁の異なるN進数f(N)個を四則演算すると必ずNが生成できる
なんていう深遠な関係があったらサイコー
4桁の異なる数字
つっても、4321と、1234、2143、...は全部同じだろ。この場合。
そう考えると、高々1-9の数字から4つを選ぶ選び方になるよな。

(9*8*7*6)/(4*3*2) = 126通り

総当りで十分

> 1桁の異なるN進数f(N)個を四則演算すると必ずNが生成できる

「演算」をどう定義するかにもよるけどな。
要するに、総当りのプログラムも書けない奴が美しさとか言っているってことで
ファイナルアンサー?
被演算数の組み合わせは208で良いから簡単だが、
演算の組み合わせの数え上げは比較的難しいものと思われ。
重複して数え上げるなら簡単だけどね。
数え上げろとは誰も言ってないけどね。
>>207
総当たりをしない限り証明はできない
問題はどのように無駄を省くかだ
>>212
群論を使えばあるいは…という話は数学的になるので、板違いかな。
組み合わせ数が有限ならば、総当りも立派な証明だと思うぞ。
>>213
0〜9の整数集合は群じゃないだろ
>>207
>総当りだとあれじゃん、たまたま偶然結果的にそうなるんだからしゃーないじゃんとしか言いようが無いし。

大馬鹿(w
「総当り」なんだから、「たまたま偶然」ではない。
>>215
> 「総当り」なんだから、「たまたま偶然」ではない。
ただ証明するのではなく数学的な美しさが欲しいってことだろ
総当たりだけでは発展性がない
整数が5つ,6つとなっていったときにも成り立つのか,など
>>216
演算を四則演算とし、数字を0〜9とした場合、
4以上すべての桁で数字を使いきり10にすることが出来る。
証明は簡単だから、数学的な美しさを持って解いてくれ。

俺は帰納法とかの証明方法を美しいとは思わないんだけどな。
あ、数字は1から9でばらばら、というのを忘れてた。だから最高でも9桁だね
>>217
> 4以上すべての桁
この意味が分からないから題意が分からない

あと、どんな証明だと簡単なのかを教えてくれ
数学的帰納法か?
>>218
0〜9のうち相異なる4つ以上の数を選ぶとき、任意の選び方で…成り立つ
ということか?
>>217
4数を選ぶ場合は選び方1通りにつき
演算4通り
演算子の位置3箇所
演算順序は4数の順列だから4!=24通り
の288通りがある

0,1,2,3という選び方で288通り試しても10にならない
これが反例になるから>>217は成り立たない
間違った
演算子の結合順序が3!=6通りあるから
1728通りだ

まあ結果は変わらない
>>221
3*4*4!じゃなくて4^3*4!かと

>>222
これで数え上げられるけれど、非常に無駄が多いにゃぁ
>>223
すまそ
日本語がわかりづらくてすまなかった。

1、2、3、4、5、6、7、8、9の九つの数の中から
4つ以上の数を選び出し、それらをすべて使って互いに四則演算すると
必ず10が出来る演算がどの組み合わせにも存在する。

という意味です。
たとえば、1、3、5、7、9の5つを取り出したら、5×(7+3+1−9)
1、2、3、5、7、8、9の7つなら9+(8−7)×(5−3)×1÷2
という感じで。

で、証明が簡単だといったのは、総当りでやればかならず出来るというだけで
数学的に出来るもんならやってみろという意図を書きたかった。

読み直してみて自分の日本語の下手さにブルー
>>225
選ぶ数を増やしていく過程を数学的帰納法か何かで短く書けないの?
>>226
論よりRUN
5桁の省力化をすこし。
1を含む場合、残りの4桁のいずれかの数に対して1を除算すると4桁の法則が成り立つ。
というかこれ以外の場合については思いつかなかった。

でもまあ
2つの数の単純な減算で「異なる4つの数字」になる場合を調べたら総当りはやいかも。

一回しか実行しなくて計算に一分もかかんないであろうプログラムの高速化して
どうならるというわけでもなし。
>228修正
2つの数の単純な減算と除算で「異なる4つの数字」になる場合を調べたら総当りはやいかも。
と思って暗算で当てはめてみると、
5-9桁全ての場合で異なる0-9の数字の合計は10になりえる
というのが成り立つ模様。

というわけで1の命題の証明は総当り以外に無いのか、
ということに興味は収束。
>>230
0は入らないよ
6桁以上のときは、必ず隣り合った数字が出てくるはず。
たとえば1 3 5 7 9とあと一つ(たとえばここでは8とする)。
とすると、その隣り合った数(ここでは7と8を例に取る)を選んで、
引き算することにより1が作られる。で、今作った1以外の数を列挙すると、
1 3 5 9 となり、4桁ならば必ず10が出来ることは証明されている。
よって6桁でも必ず10が作れる。帰納法を使えば7から9桁も証明できる。

問題は5桁だな
続き。
1の入らない5桁の数字の場合、
たとえば 2 4 6 8 とあと一つ(ここでは9とする)になり、
必ず隣り合った数が出てくる。よって、その隣り合ったもの同士を
引き算することによって1を作ることが出来る(9−8=1)。
そうすると、残ったのは今作った1と、前からあった2 4 6の4つになり、
ばらばらな4桁なら必ず10を作ることが出来る。よって
1の入らない5桁の数ならば10を作ることが出来る。

次は1が入った場合どのように処理するかだ
1が入ったばらばらな5桁の場合、
たとえば 1 3 4 6 9 とすると、
1以外の4つの数で10を作ることが必ず出来る。
よって、それに1を掛けた物はやはり10なので、
1の入った5桁の数ならば10を作ることが出来る。

証明終わり
というわけで、俺が提起した>>225
総当りを使わなくても、4桁で成立するなら
5桁以上すべての数で成立することが数学的に言えるわけだ。

これが数学的な美しい方法ってこと?やっぱり美しくないと思うんだけど
その前にどんな演算を許すのか定義しろよ。

4つの異る0-9までの数をそれぞれ
abcd
とすると、演算を・書くとき、

((a・b)・c)・d
(a・b)・(c・d)
(a・(b・c))・d
a・((b・c)・d)
a・(b・(c・d))

は全部許されるの?
割り算は、商、乗余はどうするの?それとも割り切れるもの
だけしか駄目?
演算の途中でマイナスや分数が出てもいいの?

など。
237デフォルトの名無しさん:03/09/30 22:08
>>236
過去レス嫁よ、と言いたいが、ここらでまとめておくか。

共通ルール
・演算は四則演算、すなわち+−×÷を使う
・数字はすべて使わなければいけない
・演算の順序は問わない。数字の配置も問わない。(abcdeと数字があれば、d×(c−a×e)÷bでも良い)
・演算の結果分数になっても構わない
・最終的に演算結果が10になることを目標とする

4つのばらばらな数限定ルール (>>1のルール)
・4つの異なる「1〜9」の数字を使う(0〜9ではない)

N個のばらばらな数ルール (>>225のルール)
・N個の異なる「1〜9」の数字を使う Nは最高9まで

疑問点や補足ある?
>>1のルールは
http://www.kenmon.net/4.html
でとりあえずOK?
計算結果書かれて無いけど、
ソース見た感じ悪くない。
>>225のルールは…
めんどくさそう。
>>237
OK.理解した。以下結果
1234: ((1+2)+3)+4 ........... OK
1235: ((1-2)+3)*5 ........... OK
1236: (1+(2/3))*6 ........... OK
1237: (1-3)*(2-7) ........... OK
1238: ((1-2)+3)+8 ........... OK
1239: ((1+2)/3)+9 ........... OK
1245: ((1/2)*4)*5 ........... OK
1246: ((1+6)*2)-4 ........... OK
1247: ((1-2)+4)+7 ........... OK
1248: ((1/2)*4)+8 ........... OK
1249: (1*2)*(9-4) ........... OK
1256: ((1-2)+5)+6 ........... OK
1257: (1+(2*7))-5 ........... OK
1258: (1+5)+(8/2) ........... OK
1259: ((1-5)+9)*2 ........... OK
1267: ((1/2)*6)+7 ........... OK
1268: ((1+2)*6)-8 ........... OK
1269: (2*(9-1))-6 ........... OK
1278: (1+(2*8))-7 ........... OK
1279: (2*9)-(1+7) ........... OK
1289: ((1*2)*9)-8 ........... OK
1345: ((1-3)+4)*5 ........... OK
1346: ((1+3)*4)-6 ........... OK
1347: 1-(3*(4-7)) ........... OK
1348: ((1-3)+4)+8 ........... OK
1349: ((1+3)/4)+9 ........... OK
1356: (1+(3*5))-6 ........... OK
1357: ((1-3)+5)+7 ........... OK
1358: 1-(3*(5-8)) ........... OK
1359: (5-(1+3))+9 ........... OK
1367: (1+(6/3))+7 ........... OK
1368: ((1*3)*6)-8 ........... OK
1369: (1+(3*6))-9 ........... OK
1378: ((1+8)/3)+7 ........... OK
1379: ((1/3)*9)+7 ........... OK
1389: ((3-1)*9)-8 ........... OK
1456: (1*5)*(6-4) ........... OK
1457: (1+4)*(7-5) ........... OK
1458: ((1-4)+5)+8 ........... OK
1459: ((1+4)/5)+9 ........... OK
1467: ((1-4)+6)+7 ........... OK
1468: (1+4)*(8-6) ........... OK
1469: (1+(9/6))*4 ........... OK
1478: ((1+7)/4)+8 ........... OK
1479: (1+4)*(9-7) ........... OK
1489: 8-((1-9)/4) ........... OK
1567: (1-6)*(5-7) ........... OK
1568: ((1-5)+6)+8 ........... OK
1569: ((1+5)/6)+9 ........... OK
1578: ((1*7)-5)+8 ........... OK
1579: (1*5)*(9-7) ........... OK
1589: ((1-8)+9)*5 ........... OK
1678: ((1-6)+7)+8 ........... OK
1679: ((1+6)/7)+9 ........... OK
1689: (8-(1+6))+9 ........... OK
1789: ((1+7)/8)+9 ........... OK
>>235
十分美しいと思うよ
ただ,4桁は総当たりしかないものかね…
2345: ((2*3)-4)*5 ........... OK
2346: 2*((3-4)+6) ........... OK
2347: ((2-3)+4)+7 ........... OK
2348: ((2+3)/4)*8 ........... OK
2349: ((2+3)-4)+9 ........... OK
2356: ((2-3)+5)+6 ........... OK
2357: (2+(3*5))-7 ........... OK
2358: (5/3)*(8-2) ........... OK
2359: ((2+3)/5)+9 ........... OK
2367: 2*(7-(6/3)) ........... OK
2368: (2*(3+6))-8 ........... OK
2369: ((2*3)/6)+9 ........... OK
2378: (2/3)*(7+8) ........... OK
2379: 2*((3-7)+9) ........... OK
2389: ((2*8)+3)-9 ........... OK
2456: 2*((4-5)+6) ........... OK
2457: ((2-4)+5)+7 ........... OK
2458: 2-((4-5)*8) ........... OK
2459: ((2+4)-5)+9 ........... OK
2467: 2*((4-6)+7) ........... OK
2468: 2-(4*(6-8)) ........... OK
2469: ((2+4)/6)+9 ........... OK
2478: 2*((4-7)+8) ........... OK
2479: 2-(4*(7-9)) ........... OK
2489: 2*((4-8)+9) ........... OK
2567: ((2-5)+6)+7 ........... OK
2568: 2-((5-6)*8) ........... OK
2569: ((2+5)-6)+9 ........... OK
2578: (2*5)*(8-7) ........... OK
2579: ((2+5)/7)+9 ........... OK
マジで総当たりやるのかよ
2589: (2*5)*(9-8) ........... OK
2678: 2-((6-7)*8) ........... OK
2679: ((2+6)-7)+9 ........... OK
2689: ((2+6)/8)+9 ........... OK
2789: ((2+7)-8)+9 ........... OK
3456: ((3-4)+5)+6 ........... OK
3457: 3-((4-5)*7) ........... OK
3458: ((3+4)-5)+8 ........... OK
3459: (3-5)*(4-9) ........... OK
3467: (4-(7/3))*6 ........... OK
3468: ((3*4)+6)-8 ........... OK
3469: ((3+4)-6)+9 ........... OK
3478: (3-(7/4))*8 ........... OK
3479: ((3+4)/7)+9 ........... OK
3489: (3-(8/4))+9 ........... OK
3567: 3-((5-6)*7) ........... OK
3568: ((3+5)-6)+8 ........... OK
3569: ((3*5)*6)/9 ........... OK
3578: ((3+7)/5)+8 ........... OK
3579: ((3+5)-7)+9 ........... OK
3589: ((3+5)/8)+9 ........... OK
3678: ((3+6)-7)+8 ........... OK
3679: (6+7)-(9/3) ........... OK
3689: ((3+6)-8)+9 ........... OK
3789: 3-(7*(8-9)) ........... OK
4567: ((4+5)-6)+7 ........... OK
4568: (4*5)/(8-6) ........... OK
4569: (4*6)-(5+9) ........... OK
4578: ((4+5)-7)+8 ........... OK
4579: (4*5)/(9-7) ........... OK
4589: ((4+5)-8)+9 ........... OK
4678: 4-(6*(7-8)) ........... OK
4679: 6+((7+9)/4) ........... OK
4689: 4-(6*(8-9)) ........... OK
4789: ((4+7)+8)-9 ........... OK
5678: ((5+6)+7)-8 ........... OK
5679: ((6+9)/5)+7 ........... OK
5689: ((5+6)+8)-9 ........... OK
5789: (5*(7+9))/8 ........... OK
6789: (6*(7+8))/9 ........... OK

これで全部だろ。>>1の仮説は正しい。
>>235みたいに総当たりの手間をもう少し減らせないか
>>246
どうせマシンにやらせるだけだから一緒。
高々
126個の数の組み合わせ * 24個の並べ方 * >>236に書いた5個の結合パターン * 4^3 の演算子のパターン

967680パターンを走らせりゃいい。
計算時間は、Pentium4 2.4GHzのマシンで、0.917秒しかかからんかったよ。
コード書くのには30分くらいかかったけど。

ちなみに、
「4桁の異なる数字は、各々の数字を
足したり、引いたり、かけたり、割ったりすることによって、
必ず10になる。」
以外にも、必ず2になる、必ず4になる、は成り立つけど、1、3、5、6、7、8、9、11-20
については成り立たない事も分った。
1を作れない組み合わせは、
1478、1489、1578、1679、1689
3を作れない組み合わせは、
1347
5を作れない組み合わせは、
1569、4579、4589
6を作れない組み合わせは、
6789
7を作れない組み合わせは、
1378、3457、4678、4789
8を作れない組み合わせは、
1378、1389、1589、3568、5678、5789
9を作れない組み合わせは、
1389、1589、3459、4569、4789、6789

5桁にすると、1、2、3、4、5、6、7、9、10は
作れるな。
15789で8が作れんか。。
小町算カコ(・∀・)イイ!!
誰か235のように4桁を証明してくれ
251149:03/10/01 22:39
>>248
>3を作れない組み合わせは、
>1347
甘い。
4/((7/3)-1)=3

>>149
>そのような整数は -3, 2, 3, 4, 10 のみである。
だろ?
252149:03/10/01 23:02
ものはついでに・・・
((9-1)+8)/(7-5)=8
>>251
> 4/((7/3)-1)=3

しまった。doubleで計算して、10.0と等しいかどうかで比較
してたからだ。。。コード書きながら、誤差をどうしようか
考えてたんだが、途中で忘れてもうた。
なんで誤差とか考えるかな。
分数を便利的に表す構造体なりクラスなりを作らないのはなぜ?
>>254
そこまでするほどのプログラムじゃないからでは。

単純に考えると、1〜9 で作れる最大の数は 3024 だから
差が 1/3024 よりも小さければ同じとみなしてもいいんじゃない?
>>255
一瞬だと思うんだけどね…それよりロジックに漏れがあるほうが恐い
たとえば>>50は間違っているわけで
便宜的、なんだろうなきっと。
>>256
ならオマエが一瞬で作って披露しろよ。
>>258
正直「披露する」という程のものでもないと思うが・・・
まぁ、こんなものでも披露されて喜ぶ香具師が
この世に1人でもいるのであればどーぞ(w

typedef struct {int n,d;} Rn;
void Set(Rn *r,int n,int d){int t;r->n=n,r->d=d;while(d)t=n%d,n=d,d=t;r->n/=n,r->d/=n;}
void Add(Rn *s,Rn *r,Rn *q){Rn a;Set(&a,r->n*q->d+q->n*r->d,r->d*q->d);*s=a;}
void Sub(Rn *s,Rn *r,Rn *q){Rn a;Set(&a,r->n*q->d-q->n*r->d,r->d*q->d);*s=a;}
void Mul(Rn *s,Rn *r,Rn *q){Rn a;Set(&a,r->n*q->n,r->d*q->d);*s=a;}
void Div(Rn *s,Rn *r,Rn *q){Rn a;Set(&a,r->n*q->d,r->d*q->n);*s=a;}
>>259
ソースが読めんのでPrologに変えてくれ
>>260
さすがにそれは氏ね
>259 C++にしてみた。
class R{public:int n,d;R(){}
R(int a,int b){n=a;d=b;int t;while(b)t=a%b,a=b,b=t;n/=a;d/=a;}
R operator +(R&r){R a(n*r.d+r.n*d,d*r.d);return a;}
R operator -(R&r){R a(n*r.d-r.n*d,d*r.d);return a;}
R operator *(R&r){R a(n*r.n,d*r.d);return a;}
R operator /(R&r){R a(n*r.d,d*r.n);return a;}};
ソースが読めんのでSchemeに変えてくれ
比較がねーぞカス
>>263
SchemeはいいからConcurrent Cleanに変えてくれ
>>262
あまりC++の経験がないんじゃないか?
>266
どこらへんが?
>>267
俺の見た感じではデフォルトコンストラクタでのメンバの初期化が無いことと
R operator +(R&r){R a(n*r.d+r.n*d,d*r.d);return a;}

R operator +(R const&r) const{ return R(n*r.d+r.n*d,d*r.d);}
以下略

あたりがそう見られたのかもしれない。
そっか。
259見て、短く書かなければいけないものかと、省略しまくってしまった。
でも、もうちっと短くなるな。
>>269
constは致命的だよ。
それにこういうクラスはstructで書くのが望ましい by modern C++ design
271デフォルトの名無しさん:03/10/09 22:02
で…
結局出来たの???
何でスレ読まないのかな
>>160
ガウス記号だと思いますよ
>>270
なんでstructがいいの?
スレ違いだけど後学のために聞かせて。
275デフォルトの名無しさん:04/01/31 05:03
保守あげ
>>1
作れない組み合わせが存在するのに証明もくそもない

といまさら言ってみる
>>276
まずは過去スレをちゃんと読んだあとに、
その作れない組み合わせとやらを挙げてみろ

といまさら言ってみる
>>277
>>14のリンク先
>>279
0が入ってるものが一つもないが?
0が入ったら4桁の数字じゃなくなるのか?
1230だと頑張っても9しか作れん。
3**2+1+0はダメですか。
10*(3-2)
20/(3-1)
30/(1+2)
>>282-283
>>1を見ろ
> 「4桁の異なる数字は、各々の数字を
> 足したり、引いたり、かけたり、割ったりすることによって、

3^2とか、1と0で10とかは無しなのよ
285デフォルトの名無しさん:04/03/06 18:23
☆2get神降臨☆
スピッツ Spitz すぴっつ Part75
http://music2.2ch.net/test/read.cgi/musicj/1078133685/2
2 名前: 名無しのエリー [sage] 投稿日: 04/03/01 18:35 ID:2GetrSQ5
もうあったりする。
コードがあがらないよ〜。
2時間くらいかけてINT32toCHAR配列まで作ったけど、
効率の良い計算方法がわからね〜。
30分で作れる人は尊敬。
287デフォルトの名無しさん:04/03/08 00:26
>>286
どのような計算式を考えてるの?
計算方法なら、
>>73でガイシュツだが?
>73はみてなかったんだけど、
1000->9999までFORでまわして
力技で全読みやろうと思ったんだけど、
計算の順序とかの組み換えで詰まっちゃった。
一応、整数のとある桁の数を切り出すとこまではできた。
それが役に立つかはまた別として。。。
289えっくす:04/03/09 00:16
4桁の数字だからって0を除外して考えてるのはおかしいもんな
1000だって9980だって立派な4桁の数字さ
どういう思考回路によって0が取り除かれたのか、そっちのほうが気になるわい
>>289
自然数とか?
>>290
?
4桁の異なる数字→4つの異なる自然数
で万事OK
292 デフォルトの名無しさん sage New! 04/03/13 02:53
4桁の異なる数字→4つの異なる自然数
で万事OK
294デフォルトの名無しさん:04/03/18 14:59
4つの自然数だと、簡単だな。
126通りしかないんだろ?
手計算でいいじゃん。
>>294
散々既出。あほー
自然数って曖昧な言い方だよな
分野によって0が含まれたり含まれなかったり(日本の高校以下では1以上

どっちにしろどこまでも(無限大)続く数なんだが
297デフォルトの名無しさん:04/03/20 03:04
>>296
あほか!
298>>295 じゃねーけど。:04/03/20 10:04
>>297
アフォはお前だ。

しぜん‐すう【自然数】

しぜんすう
正の整数1、2、3、4、…の総称。
物の多少の度合を示す目的に使用された場合は基数、物の順番を示す目的に使用された場合は序数という。
また、0を含めていうことがある。

Kokugo Dai Jiten Dictionary. Shinsou-ban (Revised edition) ゥ Shogakukan 1988.国語大辞典(新装版)ゥ小学館 1988.
>>5
>>6
301デフォルトの名無しさん:04/08/28 11:26
0が発明されたのはつい最近だから無理も無い。
1589
1589
304デフォルトの名無しさん:04/09/13 17:00:48
結局、途中経過も整数のみでやろうとするのは無理なのかな?
305デフォルトの名無しさん:04/09/15 03:23:50
>>304
306デフォルトの名無しさん:04/09/15 08:45:49
p f(1+2+3+4)
10

sub f(int){
return 10
}
307デフォルトの名無しさん:04/09/15 08:50:00
>>262
int operator +(int n){return 10}
308デフォルトの名無しさん
>>302
((9−8)+1)*5