本文へ

数学の問題教えて下さい。

レス25
(トピ主 2
🙂
傀儡課長
話題
1267×A+5038×B+2913×C=70073

の式が成立している場合、A・B・Cに入る整数の求め方を教えて頂けないでしょうか?

よろしくお願いいたします。

トピ内ID:2650716153

これポチに投票しよう!

ランキング

レス

レス数25

このトピックはレスの投稿受け付けを終了しました

私だったらまず式をながめます

クマちゃん
通りすがりです。 問題の式をまずながめて、 1267、5038、2913をそれぞれ何倍かしたのの和が70073とのことですね。 70073の一の位の数3になる場合を、1267の一の位の数の7×A、5038の一の位の数の8×B、 2913の一の位の数の3×Cで、A、B、Cの組み合わせを考えて、でてきた候補に、それぞれ 10または20を加えた数字も候補にいれて、和を実際に計算するのかな。 難しいようですが、候補の数字の全体の和が決まっているので、案外早く見つかるかも。 間違っていたらゴメンなさい。 では。

トピ内ID:0937102440

...本文を表示

解は無限にあります。

🙂
シジジ
 一次不定方程式の問題で、解法は初等整数論の本に載っています。字数制限があるので、読みにくい記載で失礼します。基本はユークリッドの互除法を用いて係数をどんどん小さくしていくことです。まず一番小さな係数1267で他の係数を割り5038=1267・4-30、また、2913=1267・2+379 となるので、D=A+4B+2Cとおくと、 左辺は、1267D-30B+379Cとなります。  そこで今度は最も小さい30で他の係数を割って、同様にどんどん係数を小さくしていきます。E=42D-B+12C、次には、F=4E+D+2Cとおき、さらに、G=3F+E+2Cとおくと、最後には2G+F+C=70073となるので、C=70073-2G-F、  またB=266・70073-701G+288F、 A=2792G-1143F-1060・7073となります。これが一般解です。ここでG、Fは任意の整数。例えば、G=F=0とすれば、 A=-74277380、B=18639418、C=70073となり、G=1、F=0とすれば、A=-74274588、B=18638717、C=70071となります。

トピ内ID:3104106320

...本文を表示

考え方

🐧
ふかしっぽ
与えられた式を変形すると 70073=5038×13+2913×1+1267×1+399…式1 式1の末尾399を、5038、2913、1267いずれかの倍数に変形すれば答が得られます 2913は、1267×2+379に変形可能 5038は、2913×1+1267×1+858に変形可能 以上から、399に、379と858を複数加えて、 1267、2913、5038いずれかの倍数となる組み合わせを探せばよい。 私の急場しのぎの方法は、 399+379×a+858×b =(379+20)+379×a+(379+379+100)×b =379×(1+a+2×b)+100×b+20…式2 式2を見ると、379の倍数に100と20を組み合わせて 1267、2913、5038いずれかの倍数を作れば良さそう。 調べると、 1267=379×3+130…式3 2913=379×7+260…式4 5038=379×13+111 上の式うち、111は除外 式3の両辺を4倍して 1267×4=379×12+520=379×12+100×5+20 式2の解としてb=5、a=1が確定 続きます。

トピ内ID:1122661512

...本文を表示

考え方、続き

🐧
ふかしっぽ
式2にb=5、a=1を入れて、元の式に戻すと 399+379×1+858×5 =5068 =1267×4 式1を変形して 70073=5038×8+(2913×1+1267×1+858)×5+(1267×2+379)+1267×1+399 =5038×8+2913×5+1267×5+858×5+1267×2+379+1267×1+399 =5038×8+2913×5+1267×5+1267×3+858×5+379+399 =5038×8+2913×5+1267×8+858×5+379+399 =5038×8+2913×5+1267×8+(858×5+379+399) =5038×8+2913×5+1267×8+(1267×4) =5038×8+2913×5+1267×12 =1267×12+5038×8+2913×5…答(A=12、B=8、C=5) いっぽうで、式4の両辺を2倍すると 2913×2=379×14+520=379×14+100×5+20 式2の解としてb=5、a=3が確定 スペースが足りないので以下略。

トピ内ID:1122661512

...本文を表示

愚直に・・・

🙂
わはは
数学的にエレガントな解き方は分かりませんが 総当たりでプログラムをぶん回す、もしくはエクセルでえいやっと A=12 B=8 C=5 ただし、整数が負数を含むとすると面倒です、他にあるかも 総当たりは一般的な力技ですが、 この問題の数字に何か特別な意味があったりするのかな? とりあえず素因数分解などしてみましたが、分かりませんでした(笑)

トピ内ID:4685123143

...本文を表示

数学はなれて幾星霜

🙂
通りすがり
整数A・B・Cの組を求めるんですよね。 自然数A・B・Cじゃなくって。 自然数ならば0<B<14ですので、 1~13をBに入れた後の13とおりのケースで A・Cの自然数の組合せがあるかどうか鶴亀算であたってみればいいと思うのですが、 整数とした場合は、無限に組合せがあるような気がするんですが。 なんせマイナスの数が使えるんですから

トピ内ID:4775873195

...本文を表示

自分なりに考えました

💡
やっとできた
ABCが1以上だとして、まずそれぞれの倍数を可能性があるところまで書き出しました。 5038の倍数が一番少ないので、それをもとにして残りの二つがうまく合うか考えます。 例えばBを1とした時の5038である場合、70073から引くと残りは65035になり、一の位は5です。 残りの倍数の和の一の位が5になるように合わせていきました。残念ながらBは1ではありません。 一の位の数字も綺麗に順番に並びますので、慣れてくると計算しやすくなります。 答えはA=12, B=8 そしてC=5です。

トピ内ID:5838563685

...本文を表示

力ずくで解いた

えせ造
こんにちは、エクセルを使い力ずくで解けました(手計算でも可能)。 > 1267×A+5038×B+2913×C=70073 まず和である70073に対し、大きい5038の係数Bを仮定します。 整数なので、B=0,1,2,3・・・・(負の数は後で拡張可能) 5038xBは、0、5038、10076、15114・・・ 次に 2913の係数Cを仮定します。 整数なので、C=0,1,2,3・・・・ 2913xCは、0、5826、8739、11652・・・ 70073-5038×B+2913×Cをエクセル上で表にします。 その値を1267で割った値が整数になる組み合わせを探します。 必要ならB,C、またはAを負の値に拡張します。 以上15分ほどで解けました。 解のヒント 1<B<13

トピ内ID:4051650080

...本文を表示

解答の丸投げはだめです

🙂
らんす
 宿題だか課題だかですかね。  自分で考えましょう。──目の前にある魔法の箱を使えばヒントくらい出てくるでしょう。  あとは、手を動かしましょう。(それなりに奥は深いところもないではないですが)記述自体は単純なので、とっかかりくらいつかめるでしょう。  人に全部教えてもらったら、せっかくの問題が楽しめないじゃないですか。

トピ内ID:6169825272

...本文を表示

訂正と補足

🙂
シジジ
 ふかしっぽ様の簡単な解を私の一般解から出そうとしてみて、一般解の式の間違いに気が付きましたので訂正します。  A=2792G-1123F-1060・70073、B=266・70073-701G+283F、C=70073-2G-Fですね。  これで、F=9344、G=30362とすると、ふかしっぽ様の簡単な解A=12、B=8、C=5となります。私が紹介した一般解の求め方は頭を使うことなく誰でもできるのですが、このように式の間違いをしやすいし、また一般解から具体的な特殊な解を出そうとするとき、一般解のパラメータ(私の一般解におけるG、Fのようなもの)に簡単な値を入れてもA、B、Cが簡単な値となるとは限らず、簡単な値を出すために結構大変な値を入れる必要がありますね。  なお、この方法は高木貞治「初等整数論講義」(共立出版)によるものです。字数制限で、詳しく紹介できなかったので、ぜひこの本を読んでみてください。  方程式の整数解を求めるというのは面白いのですが、いまどき大学の数学科でもこんな古い話はやってないでしょうね。  

トピ内ID:3104106320

...本文を表示

面白いですね

😀
紙つぶてい数
皆さんすごいですね。 わたしはいろいろ計算してやっと  A=19m+31n  B=86m-13n+107  C=-157m+9n-161 という一般解を求めて,またまた計算してやっと  A=12, B=8, C=5 という自然数解にたどりつきました。 手計算で所要時間一時間くらいかな? 一般解の検算ではさすがに電卓をつかいました。 ふつうの四則演算だけの電卓でじゅうぶんです。 けっこう楽しいですよ。おすすめです。

トピ内ID:2252894792

...本文を表示

皆様レスありがとうございます。

🙂
傀儡課長 トピ主
追加情報なのですが、 実は仕事でこの計算が必要になってしまったのです。 しかも不明な数値はA・B・CだけではなくKまであるので、11個もあるのです。 エクセルの関数を使ってAからKまでの数値が出せないかやってみましたが、よくわかりません。 エクセルでのやり方を教えて頂けたら嬉しいです。 アルファベットに入る数値は、正の整数か0です。

トピ内ID:2650716153

...本文を表示

ぜんぜん わからん

🐤
ひよこぴよ
傀儡課長さん 仕事とはいえ大変ですね。 私(59・男)は全然わかりません。行列を使って解けないかと・・・さっぱりわからん。 ところで私も在職中、業務で数式を解くことはよくあることでしたが、現場で数分間でも考えているわけにもいかず職場には各種の「数学ハンドブック」「数学辞典」「数式解法辞典」・・・というような書名の事典がたくさんありました。 仕事中にその作業になったら、その数式に似ている (この場合は「代数学」) 数学辞典などを書庫から出してきて、数名で似ている数式を探し、 「アッ これだ このとおりに 計算すれば 解けるぞ」 なんてことがよくあったものでした。たとえて言うと、 「明日の天気予報を考えるのに 2日も 3日も考えているわけにはいかず ただの10分間ぐらいで 即答せねばならぬ・・・」 これに似ていました。解き方というより数学辞典などの使い方を教えられたものでした。

トピ内ID:9286370367

...本文を表示

EXCEL VBAでのプログラム

🙂
姉様
EXCELのVBAマクロです。 Sub MyMacro() Dim a As Integer Dim b As Integer Dim c As Integer Dim m As Integer Dim wa As Long m = 70073 \ 1267 For a = 0 To m For b = 0 To m For c = 0 To m wa = CLng(1267) * a + CLng(5038) * b + CLng(2913) * c If wa = CLng(70073) Then MsgBox ("A=" & a & " B=" & b & " C=" & c) Exit Sub End If Next c Next b Next a End Sub

トピ内ID:7826914239

...本文を表示

🐱
紙粒亭積分定数
ひよこぴよさん 楽しそうですね。♪ ところでこの方程式自然数解は一組しかないんですね。これも不思議です。

トピ内ID:0478391338

...本文を表示

Excel VBAを用いると…

041
名ばかり臨床検査技師
 トピの問題の場合,A,B,Cが0以上の整数であることから    A<=55,B<=13,C<=24     (他の2つの変数を0と置いて,70073を各変数の係数で割った結果から) なる条件がまず求められます.そこで,Aの値(=i)を0~24,Bの値(=j)を0~13の範囲で変化させ,    k=(70073-1267*i-5038*j)/2913 として求めたkの値が整数であれば,(i,j,k)が求める(A,B,C)の値となります.  これをVBAのコード風に記すと    For i = 0 to 24      For j = 0 to 55       k = (70073-1267*i-5038*j)/2913       if k <> Int(k) then goto 1000 'kが整数でなければ次を試す       (i,j,kの値を表示)   1000      Next j    Next i の如くとなります.

トピ内ID:9192531399

...本文を表示

うむむ。

🙂
わはは
とりあえず、AからKは非負の整数でよかったのでしょうか? 以下、その前提で… 私はエクセルでときましたが、それは3次元だったからです。 13次元となると、表でとくのは難しいですが、エクセルOKならVBA使えば容易ですよね。 13層の入れ子でループを回せばすむと思います。 例題で言えば x=70073 a_fac=1267 b_fac=5038 c_fac= a_max=x/a_fac b_max=x/b_fac c_max= for a=0 to a_max for b=0 to b_max ... next b next a …の部分は y=x-(a*a_fac+b*b_fac+...) if y=0 then Redim preserve ans(3,i) ans(1,i)=a: ans(2,i)=b: ... i=i+1 end if な感じで書けば、i通りの答えが全部求まるでしょう i番目の組み合わせで、ans(1,i)がのAの値、ans(3,i)がCの値です 字数制限が厳しくて中途半端ですみませんが、単純なので分かるかと この質問は小町向きじゃないよ!

トピ内ID:4685123143

...本文を表示

一体

🙂
ぼんみ
問題の内容がだいぶ違ってきましたね。 変数の数が3つと11とではだいぶ異なる話ですよ。 3つなら手でも出来ますから。 おまけに仕事で必要、となると意味合いが変わってきます。 仕事で必要な難しい問題なのに、そのやり方が分からない、 一体どんな仕事でなんでそういう状況になるんでしょうか。 単純な事務職でA,B,C,・・・側の書類をなくしてしまったとかですか? だったらその式を書いて答えを聞いてしまったらどう? にしても5分もあれば作れるプログラムです。

トピ内ID:6413101078

...本文を表示

JavaScriptで

🐧
ふかしっぽ
数学の問題でなかったことに衝撃を隠せません 私ならメモ帳とブラウザで解きます <script type="text/javascript"> tt=70073; a=5038; b=2913; c=1267; d=●; e=●; f=●; g=●; h=●; i=●; j=●; k=●; for(p=0;p<=tt;p+=a){ for(q=0;q<=tt-p;q+=b){ for(r=0;r<=tt-p-q;r+=c){ for(s=0;s<=tt-p-q-r;s+=d){ for(t=0;t<=tt-p-q-r-s;t+=e){ for(u=0;u<=tt-p-q-r-s-t;u+=f){ for(v=0;v<=tt-p-q-r-s-t-u;v+=g){ for(w=0;w<=tt-p-q-r-s-t-u-v;w+=h){ for(x=0;x<=tt-p-q-r-s-t-u-v-w;x+=i){ for(y=0;y<=tt-p-q-r-s-t-u-v-w-x;y+=j){ for(z=0;z<=tt-p-q-r-s-t-u-v-w-x-y;z+=k){ ●答 }}}}}}}}}}}

トピ内ID:1122661512

...本文を表示

VBA? ソルバーじゃないの?

😢
夕凪
VBAで解く? エクセルではソルバーで解けるのでは?

トピ内ID:0743958853

...本文を表示

JavaScriptで、続き

🐧
ふかしっぽ
●の部分は数字を入れてください。 ●答の部分は、例えば下記を入れます。 if(tt==(p+q+r+s+t+u+v+w+x+y+z)){ document.write("A="+(p/a)+" B="+(q/b)+" C="+(r/c)+" D="+(s/d)+" E="+(t/e)+" F="+(u/f)+" G="+(v/g)+" H="+(w/h)+" I="+(x/i)+" J="+(y/j)+" K="+(z/k)); } メモ帳にJavaScriptを貼り付け、 メニューの「ファイル→名前を付けて保存」を開き、 ファイルの種類から「すべてのファイル (*.*)」を選択して デスクトップにファイル名「calc.html」として保存します。 InternetExplorerへ、デスクトップに保存したcalc.htmlのアイコンをドラッグ&ドロップし、開きます。 画面下に警告「このWebページはスクリプトやActiveXコントロールを実行しないように制限されています。」が表示された場合は「ブロックされているコンテンツを許可」をクリックして下さい。 画面に答が表示されます。

トピ内ID:1122661512

...本文を表示

プログラムの出番だけど

041
電気技術者
 数学の問題ではなく仕事で解答の数字が必要という事でしたら、プログラムで全組み合わせをチェックするのが一番と思いますが、   その問題には、必ず解答はあると分かっているのでしょうか?  負の数まで許せば解答は必ずあるでしょうが、ゼロ以上の整数という限定が入ると、数字の組み合わせによっては解無しです。  たとえば書かれた式の最初の係数を1267⇒1271と変えたとします。    1271×A+5038×B+2913×C=70073 すると、それだけで負の数か小数を使わないと解はありません。  学校の試験なら、解がある条件で出題されることが期待されますが、仕事ではどうなんでしょう。  プログラムで解くにしても、解が見つからないとき、本当に解が存在しないのか、プログラムにバグがあるのか、ちゃんと判断できるように進める必要があります。

トピ内ID:5223648237

...本文を表示

レスありがとうございます。

🙂
傀儡課長 トピ主
皆様のレスが高度な内容なので、レベルの低い私はチンプンカンプン。 VBAやJava scriptやプログラム等の作業は、聞いたこともやったこともないので何のことやら。 私のエクセルのレベルは、if関数やround関数をかろうじて使える程度です。 でも、今回の皆様からのレスが理解できるように、勉強してみます。 エクセルの未開の地に、足を踏み入れる手解きをしてくださった皆様、ありがとうございました。

トピ内ID:2650716153

...本文を表示

必要性によりますが…。

🙂
のーすとりりあ
 プログラム(というか解くことを)外注されてはいかがでしょう。  この、A~Cなら、できる人なら一瞬 (じっさい、私は5分とかからずにプログラム作って答えが出るところまでできた) ですし、これが変数が増えても計算時間だけの問題で、できる人にとっては問題じゃないでしょう。 (ここに書かれていない問題設定によっては、解き方をどうにかしないと──どうにかしても──解けるまでにものすごい時間がかかってしまう場合もありますが)  お勧めは、理工系のプログラミングがちょっとできる程度の学生をアルバイトで雇うことです。成功報酬一万円とかでも引き受けてくれるのでは。渡された答えが正しいかどうかくらいはトピ主さんでもできるはずですしね…。

トピ内ID:6169825272

...本文を表示

ちょっと訂正

041
電気技術者
 前のレスを投稿してから、自分の間違いに気が付いたので、ちょっと訂正。  負の数を使えば必ず解答はあるだろうと書きましたが、これは正しくありません。  一例として、13個の係数が全部偶数で、和として求める数字が奇数なら、変数を整数に限定すると、負の数を使っても解はありません。  投稿してすぐ気が付いていたのですが、遅れての訂正となりました。  トピ主さんの問題解決にはあまり関係無い話ですが、解無しの可能性があるよということが、より明確にはなりましたか。

トピ内ID:5223648237

...本文を表示
[PR]
気に入ったトピを保存するといつでも読み返せる
気に入ったトピを保存するといつでも読み返せる
使用イメージ
使用イメージ

マイページ利用でもっと便利に!

お気に入り機能を使う ログイン
レス求!トピ一覧