• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エジプトの分数予想がとけたかも2)

エジプトの分数予想が解けたかも2

jcpmuturaの回答

  • jcpmutura
  • ベストアンサー率84% (311/366)
回答No.2

L=409 のとき L=4abc-a-b となる 自然数a,b,c をどのように求めるのでしょうか? それを示さなければ解けたとはいえません

koolergoal
質問者

補足

 L = 4abc-4b-c    M = ac-1  4/L= 1/abLM + 1/abL + 1/bM  P=4abc-a-b  4/P=1/bcP + 1/acP + 1/abc 上の式が正しいかどうか確認してみてください。 私が公式と呼んでいる式です。上のabcに値を 代入すれば求まると思います。

関連するQ&A

  • エジプト分数の問題が解けたかも

     4 _____= 4/L A*n+B       A=ΠPi (小さい素数の積)         i         p1=2、p2=3、p3=5 とすれば                            解りやすい            B=pa (ある素数とする)          Aが十分大きいと、A/Bは整数になり 、          B=1以外の数は素数の積に含まれ、結果的に解けてしまう。     そうしていくと、L=A*n+1だけが解けなくなってしまうが     Aが十分大きくなっていくとLが大きくなっていきほとんどの数が     解けるようになってしまう。     ゆえにエジプト分数の問題は解けた。以上です。     質問はOKです。

  • 整数となる分数

    a、bを正の整数とする 任意の正の整数nに対して(n^3+an-2)/(n^2+bn+2)の値が整数となるようaとbの値を定めよ 分母は分子×分子で割り算した商+余りなのでそれで書きかえてn-b+{(a+b^2-2)n+2(b-1)}/n^2+bn+2 nもbも正の整数だから無視して{(a+b^2-2)n+2(b-1)}/n^2+bn+2が整数となればよい というところまでは分かりましたが、ここからどうすればよいかわかりません 教えてください

  • 新たに挑戦。エジプトの分数問題

    エジプトの分数問題が、解けたような気がするので、再度挑戦します。  e*P(e,f,g,h)=4*e*f*g*h - h - f (1)  Q(a,b,c)=4*a*b*c - b - 4c (2) わかりやすくするため、式を変形する。P()=Q()=24*n+1とする。 4*e*f*g - {(24*n+1)*e+f}/h=L=1 ? (4*b - 1)*a - {(6*n+b)/c}=K=1 ? 適当に値を代入して、L=1またはK=1に になれば、等式が成り立ち、解が存在するだろう。 なので、L≠1の時に、K=1とすることができることを証明する。 それにより、(1)の式の解がないとき、(2)の式に必ず解が見つけることが できることを表す。  4*e*f*g - {(24*n+1)*e+f}/h=L e=4*b - 1,f=1 とおくと  4*(4*b - 1)*g - 1{(24*n+1)*(4*b - 1)+1}/h=L  4*(4*b -1)*g={(24*n+1)*(4*b - 1)+1}/h+L h=4m とおく  4*(4*b - 1)*g={(24*n*b+b - 6*n)/m}+L ここで式を変形してKを代入する。 (4*b - 1)*a - (6*n+b)/c=K (4*b - 1)*a={(6*n+b)/c}+K a=4d とおくと  4*(4*b - 1)*d={(6*n+b)/c}+K 4*(4*b - 1)=[{(24*n*b+b - 6*n)/m}+L]/g =[{(6*n+b)/c}+K]/d nがどんなときにもK=1になることから、  {(24*d*b)/(g*m)} - {(6*d)/(g*m)} - {6/c}=0 (3)  {(d*b)/(g*m)}+{(d*L)/g} - {b/c}=K (4) (3)より  {(4*d*b)/(g*m)}={d/(g*m)}+{1/c} {d/(g*m)}*(4*b - 1)={1/c} {d/(g*m)}=[1/{c*(4*b - 1)}] (4)より  {d*(b+L*m)/(g*m)} - {b/c}=K [(b+L*m)/{c*(4*b - 1)}] - {b/c}=K ここで、Lが1以外の時にK=1となる数 b、cが存在する、たとえば、 L*m=(b+c)*(4*b-1)-b とおけば {(b+c)/c}-{b/c}=1=K となり、K=1とすることができる。 少し厳密性がありません。いい加減な証明です。

  • エジプト分数表示、有理数を単位分数の和で表す

    エジプト分数表示と呼ばれる、有理数(ただし0から1の間)を単位分数の和で表すことについて調べています。 http://www.interq.or.jp/www-user/nozato/pseudo/noteof/note5.html によると、 p/qより小さい単位分数のうち最大のもの(1/n)をとってきて、 q/p=1/n+… と考え、残りを同様に続けると有限回で終わることが示されています。これは欲張り展開法とも呼ばれるそうです。 次に、 http://www5d.biglobe.ne.jp/~bongo/math/math01.html によると、 n/m が単位分数分解できることを示すのに、 「n と m が互いに素より、 an - bm = 1 となる a,b ∈ N が存在する」 ことを用いて、示されています。 あと、 http://web2.incl.ne.jp/yaoki/abunsuu.htm によると、 「リンド・パピルスの方法の推理」とよばれる次の方法があるそうです。 1.元の分母を越えない最大の3の倍数をみつける。 2.その数を3で割り、2を掛ける。 その数が求める1つの分母になる。 3.与えられた分数から2)で求められた分数を引く。 分子が1のとき、求めるもう1つの分数となる。 分子が2のとき、約分出来るときは、約分した分数が、求めるもう1つの分数となる。 約分出来ないとき、1)にもどる。 分子が3のとき1+2に分割して2、3の分数が求められる。 で、このリンド・パピルスの方法でどの有理数も単位分数の和で表すことができるのかがわかりませんので教えていただけないでしょうか? また、単位分数分解で知られている一般的なおもしろい結果がありましたら、教えていただけないでしょうか。

  • 既約分数の表示プログラム

    (1)キーボードから,分子,分母に相当する整数2つを入力し,その既約分数を表示せよ。 (2)分母が1の時には,分子のみを表示する。 (3)分子と分母の符号が異なるときにのみ,-符号を表示する。 (4)分母がゼロの入力エラーに対しては、再入力するように促す。 (5)分子と分母の最大公約数も求めて表示する。 (6)また、正しく計算できる最大規約分数を示せ。 #include <stdio.h> int main(void) { int a,b,i=1,x,y,z; printf("分子=");/*分子の入力*/ scanf("%d",&a); printf("分母=");/*分母の入力*/ scanf("%d",&b); if(b==0) { printf("分母が0です。入力が誤っています。\n"); return 0; } if(b==1) { printf("既約分数は %d\n",a); return 0; } while((i<=a)&&(i<=b)) { if((a%i==0)&&(b%i==0)) { x=i;i=i+1; /*xを上書きしていく*/ } else { i=i+1; } } printf("分子と分母の最大公約数=%d より\n",x); y=a/x; z=b/x; printf("既約分数は %d/%d\n",y,z); return 0; } 大学の課題で出されたものです。(1)(2)(4)(5)はできたのですが、(3)と(6)の部分のやり方がいまいちよくわからなかったので質問しました。 どなたかご教授お願いできないでしょうか・・・。

  • 帯分数・仮分数、なぜそう呼ぶの?語源は?

    整数と分数の和の形で書いた分数を帯分数(たいぶんすう、mixed number)という。分子の数が分母の数以上である分数を仮分数(かぶんすう、improper fraction)という。 なぜ、そう呼ばれるのでしょうか? 帯と仮という漢字、感じの違いはなんなのでしょうか?

  • エジプトの分数問題が解けた?

     あまり説明が上手ではありませんが、証明してみましょう。 素数以外の数は必ず解けるので素数が解けることを証明します。 まず、P が素数だとすると P = 12n+1 以外の素数はすべて解けるので 素数は p = 12n+1 とします。  L = 4ab-a-1  M = 4ab-a-4  N = ab-1 とすると 4/L = { 1 / abL } + { 1 / ab } + { 1/ bL } 4/M = { 1/ bNM } + { 1/ N } + { 1 / bM }  となります。確認してみてください。 p は L = 4ab-a-1 で解けない素数とする。その場合、p=12n+1 とすると M で必ず解けることを証明する。 [ L = 4ab-a-1 ≠ p =12n+1 [ M = 4ab-a-4  p = 12n+1 = 4ab-a-4  b = n+2  4an+4-a = 12n+1 = p  a = 3 、b = n+2 となりとけるので    4ab-a-4 で解ける。以上です。 何か質問がありましたら受け付けます。

  • エジプトの分数問題が解けたかもしれない。

     あまり説明が上手ではありませんが、証明してみましょう。 素数以外の数は必ず解けるので素数が解けることを証明します。 まず、P が素数だとすると P = 12n+1 以外の素数はすべて解けるので 素数は p = 12n+1 とします。  L = 4ab-a-1  M = 4ab-a-4  N = ab-1 とすると 4/L = { 1 / abL } + { 1 / ab } + { 1/ bL } 4/M = { 1/ bNM } + { 1/ N } + { 1 / bM }  となります。確認してみてください。 p は L = 4ab-a-1 で解けない素数とする。その場合、p=12n+1 とすると M で必ず解けることを証明する。 [ L = 4ab-a-1 ≠ p =12n+1 [ M = 4ab-a-4    p = 12n+1 = 4ab-a-4 b = n+2  4an+4-a = 12n+1 = p a = 3 、b = n+2 となりとけるので    4ab-a-4 で解ける。以上です。 何か質問がありましたら受け付けます。

  • 5乗根の分数の有理化

    Aの5乗根をf(A)と書くことにします。 このとき、次の分数を有理化する方法を教えてください。 1/{1+f(64)-f(4)} 五乗根の打ち方がわからないので、fで置きました。 「有理化」は「分母を正の整数、分子を整数と累乗根の和差積で表すこと」とします。

  • 2つ分数の四則演算を行うプログラム

    <要求事項> 分数は、 例)1|3 のように表す。 1.分母がゼロの時はエラーとする。 2.除算において、除数がゼロの入力エラーに対しては、再入力するように促す。 3.以下範囲の整数(分子、分母にかかわらず)に対して、正しく計算できるようにする。   -2147483648 ~ 2147483647 4.計算結果については,分母が1の時には分子のみ表示。分数がの時には0のみを表示。最終計算結果は既約分数にする。分数が負数の場合、-を分数の前に表示。 #include <stdio.h> #include <math.h> int main(void) { int b,d; /* 分母*/ int a,c; /* 分子*/ int sign,sign2,sign3,sign4; int yakusu,yakusu2,yakusu3,yakusu4; /* 最大公約数*/ printf("分母= "); scanf("%d",&b); printf("分子= "); scanf("%d",&a); if(b==0){ printf("分母が0です。入力が誤っています。\n"); /*分母が0ならエラーとする*/ return 0; } if (a==0){ printf("分数1= 0\n"); /*分子が0のとき*/ } else{ printf("分数1=%d|%d\n",a,b); /*一つ目の分数*/ } printf("\n"); printf("分母= "); scanf("%d",&d); printf("分子= "); scanf("%d",&c); if(d==0){ printf("分母が0です。入力が誤っています。\n"); /*分母が0ならエラーとする*/ return 0; } if (c==0){ printf("分数2= 0\n"); /*分子が0のとき*/ } else{ printf("分数2=%d|%d\n",c,d); /*二つ目の分数*/ } printf("\n"); /* 足し算:a|b + c|d = (a*d + b*c) | (b*d) */ printf("足し算:%d|%d + %d|%d\n",a,b,c,d); yakusu = gcd(abs(a*d + b*c),abs(b*d)); /*最大公約数を求める*/ sign = (a*d + b*c)/abs(a*d + b*c) * (b*d/abs(b*d)); if(sign * abs(a*d + b*c)/yakusu == 0){ /*分子が0となる時*/ printf("0\n"); } if (abs(b*d)/ yakusu!= 1){ printf("既約分数は %d|%d\n" ,sign * abs(a*d + b*c)/yakusu , abs(b*d)/yakusu ); } else{ printf("既約分数は %d\n" ,sign * abs(a*d + b*c)/yakusu ); /*分母が1の場合*/ } printf("\n"); /* 引き算:a|b - c|d = (a*d - b*c) | (b*d) */ printf("引き算:%d|%d - %d|%d\n",a,b,c,d); yakusu2 = gcd(abs(a*d - b*c),abs(b*d)); /*最大公約数を求める*/ sign2 = (a*d - b*c)/abs(a*d - b*c) * (b*d/abs(b*d)); if(sign2 * abs(a*d - b*c)/yakusu2 == 0){ /*分子が0となる時*/ printf("0\n"); } if (abs(b*d)/ yakusu2!= 1){ printf("既約分数は %d|%d\n" ,sign2 * abs(a*d - b*c)/yakusu2 , abs(b*d)/yakusu2 ); } else{ printf("既約分数は %d\n" ,sign2 * abs(a*d - b*c)/yakusu2 ); } printf("\n"); /* 掛け算:a|b * c|d = (a*c) | (b*d) */ printf("掛け算:%d|%d * %d|%d\n",a,b,c,d); yakusu3 = gcd(abs(a*c),abs(b*d)); /*最大公約数を求める*/ sign3 = (a*c)/abs(a*c) * (b*d/abs(b*d)); if(sign3 * abs(a*c)/yakusu3 == 0){ /*分子が0となる時*/ printf("0\n"); } if (abs(b*d)/ yakusu3!= 1){ printf("既約分数は %d|%d\n" ,sign3 * abs(a*c)/yakusu3 , abs(b*d)/yakusu3 ); } else{ printf("既約分数は %d\n" ,sign3 * abs(a*c)/yakusu3 ); /*分母が1の場合*/ } printf("\n"); /* 割り算:a|b / c|d = (a*d) | (b*c) */ printf("割り算:%d|%d / %d|%d\n",a,b,c,d); yakusu4 = gcd(abs(a*d),abs(b*c)); /*最大公約数を求める*/ sign4 = (a*d)/abs(a*d) * (b*c/abs(b*c)); if(sign4 * abs(a*d)/yakusu4 == 0){ /*分子が0となる時*/ printf("0\n"); } if (abs(b*c)/ yakusu4!= 1){ printf("既約分数は %d|%d\n" ,sign4 * abs(a*d)/yakusu4 , abs(b*c)/yakusu4 ); } else{ printf("既約分数は %d\n" ,sign4 * abs(a*d)/yakusu4 );/*分母が1の場合*/ } return 0; } int gcd(int x,int y){ /* ユークリッド互除法*/ int z; if( (x <= 0) || (y <= 0) ){ return -1; } z = x % y; while (z != 0){ x = y; y = z; z = x % y; } return y; } >>大学の課題です。現在の状態は上記の通りです。このプログラムだと、答えの既約分数が0になると表示できなかったり、桁が大きい数で計算しようとすると値がおかしくなってしまいます。 どなたかプログラム改良にご助力願えないでしょうか?