ゴンとも |
十進Basicで 有理数モードで
FOR a=1 to 9 FOR b=1 to 9 if b=a then goto 80 FOR c=b+1 to 9 if c=a or c=b then goto 70 FOR d=1 TO 9 if d=a or d=b or d=c then goto 60 FOR e=0 to 9 if e=a or e=b or e=c or e=d then goto 50 FOR f=1 TO 9 if f=a or f=b or f=c or f=d or f=e then goto 40 FOR g=0 to 9 if g=a or g=b or g=c or g=d or g=e or g=f then goto 30 FOR h=0 to 9 if h=a or h=b or h=c or h=d or h=e or h=f or h=g then goto 20 IF gcd(a,6)=1 AND gcd(b,10*d+e)=1 AND gcd(c,10^2*f+10*g+h)=1 AND a*e*h+10*a*d*h-6*b*h+10*a*e*g+100*a*d*g-60*b*g+100*a*e*f+1000*a*d*f-600*b*f-6*c*e-60*c*d=0 AND 6*(d+10*c)*(h+10*g+100*f)<>0 THEN PRINT 10^7*a+10^6*b+10^5*c+10^4*d+10^3*e+10^2*f+10*g+h 20 next h 30 next g 40 next f 50 next e 60 next d 70 next c 80 next b 90 NEXT a END f9押して 16743258・・・・・・(答え) |
豊川市
5月26日(木) 0:34:14
MAIL:fttnm528@ybb.ne.jp 51540 |
珪藻土の大木 |
既約分数になるのは 1/6 = 6/43 + 7/258 の 1 つで、既約に限らなければさらに 1/6 = 5/32 + 9/864 = 6/42 + 9/378 = 8/57 + 9/342 の 3 つがあるように思います |
5月26日(木) 0:38:19
51541 |
ゴンとも |
#51541
既約に限らなければで 1/6=4/26+5/390,1/6=6/45+9/270,3/6=7/15+8/240 もあると思いますが・・・ |
豊川市
5月26日(木) 1:04:25
MAIL:fttnm528@ybb.ne.jp 51542 |
いちごみるく |
#include <bits/stdc++.h>
using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); vector<int>v = { 0,1,2,3,4,5,6,7,8,9 }; do { if (0 == v[2])continue; if (0 == v[5])continue; if (v[1] > v[4])continue; if (v[8] > v[9])continue; int a = v[0]; int b = 6; int c = v[1]; int d = 10 * v[2] + v[3]; int e = v[4]; int f = 100 * v[5] + 10 * v[6] + v[7]; if (a * d * f == c * b *f + b * d* e) { cout << a << "/" << b << "," << c << "/" << d << "," << e << "/" << f << endl; } } while (next_permutation(v.begin(), v.end())); return 0; } |
5月26日(木) 1:06:46
51543 |
いちごみるく |
1/6,4/26,5/390
1/6,5/32,9/864 1/6,6/42,9/378 1/6,6/43,7/258 1/6,6/45,9/270 1/6,8/57,9/342 3/6,7/15,8/240 いっぱいありますね。 |
5月26日(木) 1:06:56
51544 |
珪藻土の大木 |
#51542
あ、1ケタの整数というので0を除外していました(確かにクは1ケタの整数と言われていませんね…) |
5月26日(木) 1:07:34
51545 |
いちごみるく |
ア〜キにはと書いているのは下記間違えだと思います。
0は含めないのが正しい解釈だと |
5月26日(木) 1:20:31
51546 |
今年から高齢者 |
この問題のままだと複数の解になりますが
「この分数式は、1から9までのすべて異なる整数で成立している」 とすれば、答えは1つですね。6を含めてちょうど9つ。 |
5月26日(木) 1:32:21
51547 |
SECOND |
そのようですね、、コノ掲示板にも「6」を含まない8桁1つ しか入れませんでした。 |
5月26日(木) 1:44:43
51548 |
マサル |
すみません、ア〜クとするところを、間違ってしまいました。m(_ _)m
それによる別解もあるようなので、正解ファイルと掲示板へのパスワードを書き換えました。申し訳ありません。 |
自宅
5月26日(木) 3:03:08
HomePage:ARENA 51549 |
Taro |
1 4 5 2 6 3 9 0
1 5 9 3 2 8 6 4 1 6 7 4 3 2 5 8 1 6 9 4 2 3 7 8 1 6 9 4 5 2 7 0 1 8 9 5 7 3 4 2 3 7 8 1 5 2 4 0 |
5月26日(木) 6:12:12
51550 |
Taro |
#51542
分子0を考えなければ8通りでしょうか FOR a=1 TO 5 FOR b=1 TO 9 FOR c=b+1 TO 9 FOR d=1 TO 9 FOR e=0 TO 9 FOR f=1 TO 9 FOR g=0 TO 9 FOR h=0 TO 9 IF a=b THEN 100 IF a=c THEN 100 IF a=d THEN 100 IF a=e THEN 100 IF a=f THEN 100 IF a=g THEN 100 IF a=h THEN 100 IF b=d THEN 100 IF b=e THEN 100 IF b=f THEN 100 IF b=g THEN 100 IF b=h THEN 100 IF c=d THEN 100 IF c=e THEN 100 IF c=f THEN 100 IF c=g THEN 100 IF c=h THEN 100 IF d=e THEN 100 IF d=f THEN 100 IF d=g THEN 100 IF d=h THEN 100 IF e=f THEN 100 IF e=g THEN 100 IF e=h THEN 100 IF f=g THEN 100 IF f=h THEN 100 IF g=h THEN 100 LET z=ABS(a/6-b/(d*10+e)-c/(100*f+10*g+h)) IF z<0.000001 THEN PRINT a;b;c;d;e;f;g;h 100 NEXT H NEXT G NEXT F NEXT E NEXT D NEXT C NEXT B NEXT A END |
5月26日(木) 6:14:09
51552 |
最後の手描き図面職人 |
パイソンプログラムで解いてみました。プログラムは
added1=[] added2=[] added3=[] added4=[] added5=[] added6=[] added7=[] added8=[] for a in range(1,10): for b in range(1,10): for c in range(1,10): for d in range(1,10): for e in range(1,10): for f in range(1,10): for g in range(1,10): for h in range(1,10): if a/6==(b/(10*d+e))+(c/(100*f+10*g+h)) and a!=b and a!=c and a!=d and a!=e and a!=f and a!=g and a!=h and b!=c and b!=d and b!=e and b!=f and b!=g and b!=h and c!=d and c!=e and c!=f and c!=g and c!=h and d!=e and d!=f and d!=g and d!=h and e!=f and e!=g and e!=h and f!=g and f!=h and g!=h and b<c: added1.append(a) added2.append(b) added3.append(c) added4.append(d) added5.append(e) added6.append(f) added7.append(g) added8.append(h) print('ア=',added1) print('イ=',added2) print('ウ=',added3) print('エ=',added4) print('オ=',added5) print('カ=',added6) print('キ=',added7) print('ク=',added8) このプログラムを走らせると、解は4通りです。 |
5月26日(木) 10:51:53
51553 |
Mr.ダンディ |
他の人が指摘されているように 6が含まれてもよいものとして考え 昨夜は
1/6=6/43+7/258 として何故正解にならないのかと思いながら床に就きました。 もしや 6以外でというのが題意ではと思い 考え直し 18957342 という値を得てここに入れました。 (既約分数でなくともよいというところも盲点でしたね) |
5月26日(木) 11:14:38
51554 |
Jママ |
答えが7通り出て、解答欄におさまらず困ってました。解き方も変で、
ウ-イ=k, エオ=x, カキク=yとすると {ア×x-6(ウ-k)}{y-6×ウ/ア}=36×ウ(ウ-k)/ア となるので ア=5,4,3,2,1 ウ=9,8,7,6,5,4… k=1,2,3,4,5,6,7 のほぼ総当りで探しました。 式が整数にならないもの、ア,イ,ウと同じ数が出るものなど飛ばしましたが大変な時間泥棒でした。笑 答 14526390 15932864 16743258 16942378 16945270 18957342 37815240 どう解くと早くなるのですか?教えて下さいませ。 |
5月26日(木) 12:50:17
51557 |
スモークマン |
0,6は使えないと考えてもすぐわからず...
先ほど、左辺=1/6, 9/***と決め打ちで攻めましたら... 9/342=1/38 1/6-1/38=32/228=8/57 と少なくとも一つ求まりました...^^ これ以外ないことはわかりません ^^; これはプログラム問でしたのでしょうかしらん... |
5月26日(木) 13:12:51
51558 |
最後の手描き図面職人 |
プログラムを変更します。ぜろは整数なのでゼロも含めなければなりません。
added1=[] added2=[] added3=[] added4=[] added5=[] added6=[] added7=[] added8=[] for a in range(10): for b in range(10): for c in range(10): for d in range(10): for e in range(10): for f in range(10): for g in range(10): for h in range(10): if (10*d+e)!=0 and (100*f+10*g+h)!=0 and a/6==(b/(10*d+e))+(c/(100*f+10*g+h)) and a!=b and a!=c and a!=d and a!=e and a!=f and a!=g and a!=h and b!=c and b!=d and b!=e and b!=f and b!=g and b!=h and c!=d and c!=e and c!=f and c!=g and c!=h and d!=e and d!=f and d!=g and d!=h and e!=f and e!=g and e!=h and f!=g and f!=h and g!=h and b<c: added1.append(a) added2.append(b) added3.append(c) added4.append(d) added5.append(e) added6.append(f) added7.append(g) added8.append(h) print('ア=',added1) print('イ=',added2) print('ウ=',added3) print('エ=',added4) print('オ=',added5) print('カ=',added6) print('キ=',added7) print('ク=',added8) このプログラムを走らせると、解は40通りです。 |
5月26日(木) 13:53:37
51559 |
ろろ |
方針がなかなか立たず、分母のどちからが2の倍数、もう一方が3の倍数でやろうかと思ったものの、その先が途方もなく感じられたので、2桁の方を任意の数(エオ)、3桁の方を6×(エオ)と決めて、分子の部分が(6×イ+ウ)が(エオ)で割り切れるものを探そうから始めました。
6の倍数が3桁になり、同じ数が使われていないものから順に試してみました。 まず(エオ)=29 (カキク)=174 にすると イ=4 ウ=5 で4が重複でダメ こうして探していくと、(エオ)=43 (カキク)=258 がうまくいったので、出来たと思い回答を送りましたが掲示板に入れず、イ=6なのがダメなのかもしれないと、再度続けて探して、(エオ)=57 (カキク)=342 で掲示板に入れました。これ以上探すの大変なので別解探索はあきらめました。 |
5月26日(木) 14:19:57
51560 |
最後の手描き図面職人 |
アからクの整数に6は含まないのだから条件を追加します。ifの後に、a!=6 and b!=6 and c!=6 and d!=6 and e!=6 and f!=6 and g!=6 and h!=6を挿入します。 |
5月26日(木) 15:04:20
51561 |
ベルク・カッツェ |
訂正前の条件で58910270としました。
訂正されたので改めて考えてみます。 |
5月26日(木) 15:11:28
51562 |
最後の手描き図面職人 |
条件を追加しても、解は10個あります。 |
5月26日(木) 15:16:07
51563 |
最後の手描き図面職人 |
条件を追加したプログラムは
import math added1=[] added2=[] added3=[] added4=[] added5=[] added6=[] added7=[] added8=[] for a in range(10): for b in range(10): for c in range(10): for d in range(10): for e in range(10): for f in range(10): for g in range(10): for h in range(10): if (10*d+e)!=0 and (100*f+10*g+h)!=0 and math.gcd(b,(10*d+e))==1 and math.gcd(c,(100*f+10*g+h))==1 and a/6==(b/(10*d+e))+(c/(100*f+10*g+h)) and a!=b and a!=c and a!=d and a!=e and a!=f and a!=g and a!=h and b!=c and b!=d and b!=e and b!=f and b!=g and b!=h and c!=d and c!=e and c!=f and c!=g and c!=h and d!=e and d!=f and d!=g and d!=h and e!=f and e!=g and e!=h and f!=g and f!=h and g!=h and a!=6 and b!=6 and c!=6 and d!=6 and e!=6 and f!=6 and g!=6 and h!=6 and b<c: added1.append(a) added2.append(b) added3.append(c) added4.append(d) added5.append(e) added6.append(f) added7.append(g) added8.append(h) print('ア=',added1) print('イ=',added2) print('ウ=',added3) print('エ=',added4) print('オ=',added5) print('カ=',added6) print('キ=',added7) print('ク=',added8) 解は1つに、なりましたが14539078です。 |
5月26日(木) 16:52:34
51564 |
珪藻土の大木 |
同じく、追加された条件では(0も1ケタの整数に含むとして) 14539078 (1/6=4/39+5/078) のみになりました。
プログラムはC++20でこのように #include <vector> #include <algorithm> #include <numeric> #include <cstdio> #include <ranges> int main(){ std::vector<int> numbers{0, 1, 2, 3, 4, 5, 7, 8, 9}; do{ const auto ア{numbers[0]}, イ{numbers[1]}, ウ{numbers[2]}, エ{numbers[3]}, オ{numbers[4]}, カ{numbers[5]}, キ{numbers[6]}, ク{numbers[7]}; if(イ > ウ)std::reverse(numbers.begin() + 3, numbers.end()); const auto エオ{エ * 10 + オ}; const auto カキク{カ * 100 + キ * 10 + ク}; const auto is_既約{std::gcd(ア, 6) == 1 && std::gcd(イ, エオ) == 1 && std::gcd(ウ, カキク) == 1}; if(is_既約 && ア * エオ * カキク == 6 * イ * カキク + 6 * エオ * ウ){ for(const auto x : numbers | std::views::take(8))std::printf("%d", x); std::printf(" : %d/6 = %d/%d%d + %d/%d%d%d\n", ア, イ, エ, オ, ウ, カ, キ, ク); } std::reverse(numbers.begin() + 8, numbers.end()); }while(std::ranges::next_permutation(numbers).found); return 0; } |
5月26日(木) 17:51:33
51565 |
まるケン |
問題文が訂正になり、現在の問題文の条件は以下の3つ
1.ア〜クは6以外のすべて異なる1ケタの整数 2.ウはイよりも大きい 3.右辺の分数はともに既約分数 プログラムで確認したところ、条件が一つもないと答えは5つ求まります。 でも、条件1を加えるだけで答えは1つだけに絞られます。(今回の想定解) 1/6=8/57+9/342 この答えは条件2も満たします。 でも、条件3は第2項が約分できてしまうので、条件を満たしません。 条件を増やしすぎたものと推測します。 ちなみに、左辺の分母も不明として、1〜9のすべて異なる一桁の整数を当てはめると、 すべての条件を満たす 1/8 = 4/37 + 5/296 というのが求まりました。 マサルさんが出したかった問題は、6じゃなくて8だったんでしょうか、、、 |
5月26日(木) 18:05:29
MAIL:take4310@mobile.email.ne.jp 51566 |
いちごみるく |
0って一桁の数の扱いになるのですか?
未定義が正しいと思うのですが |
5月26日(木) 20:35:34
51567 |
「数学」小旅行 |
あれれ、これは解なしです。
p ((1..9).to_a-[6]).permutation.select{|x|Rational(x[0],6)==Rational(x[1],x[3]*10+x[4])+Rational(x[2],x[5]*100+x[6]*10+x[7])&&x[2]>x[1]&&x[1].gcd(x[2]*10+x[3])==1&&x[4].gcd(x[5]*100+x[6]*10+x[7])==1} 9/342が既約分数ではないので。。。 |
5月26日(木) 21:11:24
51568 |
「数学」小旅行 |
p (1..9).to_a.permutation.select{|x|Rational(x[0],x[8])==Rational(x[1],x[3]*10+x[4])+Rational(x[2],x[5]*100+x[6]*10+x[7])}
で、1から9をひとつずつ入れて、〇/〇=〇/〇〇+〇/〇〇〇を満たすのは、つぎの2通りでした。 [[1/8= 4/ 37+ 5/ 296], [1/6= 8/ 57+ 9/ 342]] ですので、私はウ>イは不要と思います。また、右辺がすべて既約分数となるなら左辺の分母は8でないとだめだと思います。 |
5月26日(木) 21:40:22
51569 |
SECOND |
!まとめの表を、作ってみました。全体の 44 個は、0〜9 から「異なる8個」の条件だけです。(所要時間は20年前のノート)
! 右辺 既約分数 の条件は強く、5個しか残らず、 ! 新しい題意に合うのは1つ ! 14539078 …6と2を含まず。右辺 既約分数 No_ 8 4.06sec 掲示板に入れない? ! 掲示板に入れるのは、 ! 18957342 …0と6を含まず。右辺…約分可 No_17 5.58sec ですが、右辺 既約分数でない ! 58910270 …0が2つなのに掲示板に入れる? ! 12748056 …3と9を含まず。右辺…約分可 No_ 1 3.49sec ! 12796048 …5と3を含まず。右辺…約分可 No_ 2 3.52sec ! 12984063 …7と5を含まず。右辺…約分可 No_ 3 3.59sec ! 13426078 …5と9を含まず。右辺…約分可 No_ 4 3.69sec ! 13672048 …5と9を含まず。右辺…約分可 No_ 5 3.80sec ! 13854072 …6と9を含まず。右辺…約分可 No_ 6 3.86sec ! 13872064 …5と9を含まず。右辺…約分可 No_ 7 3.88sec ! 14539078 …6と2を含まず。右辺 既約分数 No_ 8 4.06sec ! 14526390 …8と7を含まず。右辺…約分可 No_ 9 4.08sec ! 14678052 …3と9を含まず。右辺…約分可 No_10 4.14sec ! 15793062 …8と4を含まず。右辺 既約分数 No_11 4.52sec ! 15862093 …4と7を含まず。右辺 既約分数 No_12 4.55sec ! 15932864 …0と7を含まず。右辺…約分可 No_13 4.58sec ! 16743258 …0と9を含まず。右辺 既約分数 No_14 4.81sec ! 16945270 …8と3を含まず。右辺…約分可 No_15 4.91sec ! 16942378 …0と5を含まず。右辺…約分可 No_16 4.91sec ! 18957342 …0と6を含まず。右辺…約分可 No_17 5.58sec ! 23716048 …5と9を含まず。右辺 既約分数 No_18 6.75sec ! 23918054 …7と6を含まず。右辺…約分可 No_19 6.84sec ! 24718063 …5と9を含まず。右辺…約分可 No_20 7.10sec ! 26834051 …7と9を含まず。右辺…約分可 No_21 7.78sec ! 27984036 …1と5を含まず。右辺…約分可 No_22 8.19sec ! 34709126 …8と5を含まず。右辺…約分可 No_23 10.00sec ! 34716028 …5と9を含まず。右辺…約分可 No_24 10.00sec ! 34956021 …8と7を含まず。右辺…約分可 No_25 10.09sec ! 35618027 …4と9を含まず。右辺…約分可 No_26 10.30sec ! 35712084 …6と9を含まず。右辺…約分可 No_27 10.35sec ! 35812096 …4と7を含まず。右辺…約分可 No_28 10.38sec ! 35916048 …7と2を含まず。右辺…約分可 No_29 10.42sec ! 36754018 …2と9を含まず。右辺…約分可 No_30 10.66sec ! 36714098 …2と5を含まず。右辺…約分可 No_31 10.67sec ! 36718042 …5と9を含まず。右辺…約分可 No_32 10.67sec ! 36918054 …7と2を含まず。右辺…約分可 No_33 10.75sec ! 36984021 …5と7を含まず。右辺…約分可 No_34 10.77sec ! 37815240 …6と9を含まず。右辺…約分可 No_35 11.05sec ! 37956024 …8と1を含まず。右辺…約分可 No_36 11.08sec ! 37921054 …8と6を含まず。右辺…約分可 No_37 11.11sec ! 45908216 …3と7を含まず。右辺…約分可 No_38 13.33sec ! 45912036 …8と7を含まず。右辺…約分可 No_39 13.35sec ! 46918027 …5と3を含まず。右辺…約分可 No_40 13.67sec ! 47812096 …5と3を含まず。右辺…約分可 No_41 13.97sec ! 57912036 …8と4を含まず。右辺…約分可 No_42 16.92sec ! 57984012 …3と6を含まず。右辺…約分可 No_43 16.92sec ! 58916027 …3と4を含まず。右辺…約分可 No_44 17.27sec !終了 29.16sec !作表に使用した十進BASICプログラム OPTION ARITHMETIC RATIONAL LET n=10 LET r=8 DIM a(n+2) DATA 0,1,2,3,4,5,6,7,8,9,0,0 MAT READ a LET t0=TIME CALL perm20(1) ! 0〜9 の10個から、8個の「順列」を展開する。 PRINT USING "!終了 ###.##sec":TIME-t0 SUB perm20(k) !start CALL perm20(1) local i IF k<=r THEN FOR i=k TO n swap a(k),a(i) CALL perm20(k+1) swap a(k),a(i) NEXT i ELSE LET w2=a(4)*10+a(5) LET w3=a(6)*100+a(7)*10+a(8) IF a(1)/6=a(2)/w2+a(3)/w3 AND a(2)< a(3) THEN LET a(11)=a(11)+1 LET a(12)=TIME-t0 IF gcd(a(2),w2)=1 AND gcd(a(3),w3)=1 THEN LET w$="右辺 既約分数" ELSE LET w$="右辺…約分可 " MAT PRINT USING "! <<<<<<<< …<と<を含まず。"& w$& " No_## ###.##sec": a END IF END IF END SUB END |
5月27日(金) 7:15:09
51570 |
SECOND |
訂正: 全体の 44 個は、0〜9 から「異なる8個」の条件と「ウはイよりも大きい」だけです |
5月27日(金) 8:00:48
51571 |
最後の手描き図面職人 |
ゼロが1桁の整数でなければ、プログラムは次のようになります。
import math added1=[] added2=[] added3=[] added4=[] added5=[] added6=[] added7=[] added8=[] for a in range(1,10): for b in range(1,10): for c in range(1,10): for d in range(1,10): for e in range(1,10): for f in range(1,10): for g in range(1,10): for h in range(1,10): if (10*d+e)!=0 and (100*f+10*g+h)!=0 and math.gcd(b,(10*d+e))==1 and math.gcd(c,(100*f+10*g+h))==! and a/6==(b/(10*d+e))+(c/(100*f+10*g+h)) and a!=b and a!=c and a!=d and a!=e and a!=f and a!=g and a!=h and b!=c and b!=d and b!=e and b!=f and b!=g and b!=h and c!=d and c!=e and c!=f and c!=g and c!=h and d!=e and d!=f and d!=g and d!=h and e!=f and e!=g and e!=h and f!=g and f!=h and g!=h and a!=6 and b!=6 and c!=6 and d!=6 and e!=6 and f!=6 and g!=6 and h!=6 and b<c: added1.append(a) added2.append(b) added3.append(c) added4.append(d) added5.append(e) added6.append(f) added7.append(g) added8.append(h) print('ア=',added1) print('イ=',added2) print('ウ=',added3) print('エ=',added4) print('オ=',added5) print('カ=',added6) print('キ=',added7) print('ク=',added8) このプログラムを実行すると、解はありませんでした。 |
5月28日(土) 2:25:30
51572 |
最後の手描き図面職人 |
既約分数という条件を外すと、18957342でした。 |
5月28日(土) 3:17:54
51573 |
SECOND |
無礼ながら、想定されていた問題は、次のようでなかったでしょうか。
上の分数計算の、ア〜クには、6を除く、すべて異なる1ケタの 正の整数が当てはまります。ただし、ウはイよりも大きい整数です。 このとき、8ケタの整数「アイウエオカキク」を求めてください。 |
5月28日(土) 11:31:29
51574 |