211
181 うそとまこと
2020/09/14(月) 16:33:01 ID: bmxKTOyqIr
プログラム内のx=a*b;とy=b*b;について説明したいと思います。
まずはa÷bの割り算にb/bを掛けます。現在ではb/b=1になりb=0の場合は解なしですが、乗算と除算の性質を利用し解を求めないで分子と分母に分け、(a×b)÷(b×b)の数式にします。
ゼロ除算の出力結果が、答:0 余り:0(nan)となる理由は、a÷0の割り算が(a×0)÷(0×0)となり、乗算を先に計算した結果0÷0の数式になるからです。
【減算で除算/C言語サンプル ソースプログラム/佐伯英子技術士事務所(情報工学)】
https://
引き算で割り算a÷b
整数型(int、%d)、負数対応
※ゼロ除算で答:0 余り:0(nan)を出力するプログラム
※if(b==0)例外処理未使用
※上部省略
182 うそとまこと
2020/09/14(月) 16:34:58 ID: bmxKTOyqIr
x=a*b;
y=b*b;
if(a>=0&&b>=0){
for(c=0;x>=y&&y>0;c++)
{x-=y;}
printf("\n答:%d 余り:%d\n",c,x/b);
}
else if(a<=0&&b>=0){
for(c=0;x<=y*(-1)&&y>0;c--)
{x+=y;}
printf("\n答:%d 余り:%d\n",c,x/b);
}
else if(a>=0&&b<=0){
for(c=0;x<=y*(-1)&&y>0;c--)
{x+=y;}
printf("\n答:%d 余り:%d\n",c,x/b);
}
else if(a<=0&&b<=0){
for(c=0;x>=y&&y>0;c++)
{x-=y;}
printf("\n答:%d 余り:%d\n",c,x/b);
}
}
183 うそとまこと
2020/09/17(木) 19:36:06 ID: bmxKTOyqIr
elseを取り除きif文構成にした場合にいくつかの不備を発見。
>>171では、8÷2の割り算で余りがa=0になる場合、他のfor文でa=0つまり0÷2を出力し、出力結果が2つ表示。
0÷bでは全てのif文の条件式がa==0を含む為、出力結果が複数表示されます。
>>181では、0÷bとa÷0で複数出力されます。
対応策は、
①else if文を使い続ける
②出力する為のprintf("");をひとまとめにする
③return 0;を使用
④if文の条件式を変更
(※for文を別々で出力させる場合、不具合が生じます)
⑤d=a;を使用(※必須、①~③で対応してますが、負数の余りを求める割り算で未使用時に不具合が生じます)
減算で除算のソースプログラムから逸脱しないようにしているので、対策①を使用してますが、出力結果が気になる方は⑤を使用しつつ①と②を使用してください。
他に不備等があるようでしたらご一報ください。
184 うそとまこと
2020/09/18(金) 09:37:38 ID: bmxKTOyqIr
>>182のプログラムに⑤'d=x;と②出力する為のprintf("");をひとまとめにするを使用してプログラムを作成。
※上部省略
x=a*b;
y=b*b;
d=x;
if(a>=0&&b>=0){
for(c=0;d>=y&&y>0;c++)
{d-=y;}
}
if(a<=0&&b>=0){
for(c=0;d<=y*(-1)&&y>0;c--)
{d+=y;}
}
if(a>=0&&b<=0){
for(c=0;d<=y*(-1)&&y>0;c--)
{d+=y;}
}
if(a<=0&&b<=0){
for(c=0;d>=y&&y>0;c++)
{d-=y;}
}
printf("\n答:%d 余り:%d\n",c,d/b);
}
185 うそとまこと
2020/09/18(金) 09:40:17 ID: bmxKTOyqIr
>>184のプログラムを符号の反転を利用し、for文を一纏めにしたプログラムを作成(短縮ver)
#include <stdio.h>
#include <stdlib.h>
int main()
{
char buf[128];
int a,b,c,d,x,y;
printf("\n***引き算で割り算***\n");
printf("\n減算だけでa÷bを計算します\n");
printf("\n a:");
gets(buf);a=atoi(buf);
printf("\n b:");
gets(buf);b=atoi(buf);
x=a*b;
y=b*b;
d=x;
if(x<0)
{d=d*(-1);}
for(c=0;d>=y&&y>0;c++)
{d-=y;}
if(x<0)
{c=c*(-1);
d=d*(-1);}
{printf("\n答:%d 余り:%d\n",c,d/b);}
}
186 うそとまこと
2020/10/09(金) 11:43:45 ID: bmxKTOyqIr
ゼロ除算の原因の一つである剰余演算について、定義のm=q×n+rを一次方程式を使い判別してみました。
(m余りr)÷n=q
(m-r)÷n=q
m=q×n+r(n≠0)
10÷3 = 3(整数型)
10÷3 = 3余り1(剰余演算)
10 = 3×3+1(被除数の3を移項)
m÷n=q余りr
m÷n=q+r
10÷3 = 10/3(分数)
10÷3 = 9/3+1/3(※)
10÷3 = 3と1/3(帯分数)
187 うそとまこと
2020/10/29(木) 17:23:47 ID: mRTiGgRl1l
#include <stdio.h>
#include <stdlib.h>
int main()
{
char buf[128];
int a,b,c,d;
printf("\n***引き算で割り算***\n");
printf("\n減算だけでa÷bを計算します\n");
printf("\n a:");
gets(buf);a=atoi(buf);//aの値を入力
printf("\n b:");
gets(buf);b=atoi(buf);//bの値を入力
printf("\n%d÷%d=%d/%d\n",a,b,a,b);
for(c=0;a>=b&&b>0;c++)
{a-=b;}//aからb減算
printf("\n帯分数:%dと%d/%d\n",c,a,b);
}
***引き算で割り算***
減算だけでa÷bを計算します
a:10
b:3
10÷3=10/3
帯分数:3と1/3
188 うそとまこと
2020/10/29(木) 17:46:48 ID: mRTiGgRl1l
ゼロ除算の原因となったプログラムは、
剰余演算のプログラムではなく、帯分数を求めるプログラムなのでは?
しかも、(&&b>0)が欠けてせいでエラー(オーバーフロー)し、ゼロ除算が無限と誤認された欠陥プログラム?
189 うそとまこと
2020/10/30(金) 08:57:07 ID: mRTiGgRl1l
#include <stdio.h>
#include <stdlib.h>
int main()
{
char buf[128];
int a,b,c,d,i;
printf("\n***引き算で割り算***\n");
printf("\n減算だけでa÷bを計算します\n");
printf("\n a:");
gets(buf);a=atoi(buf);//aの値を入力
printf("\n b:");
gets(buf);b=atoi(buf);//bの値を入力
printf("\n%d÷%d=%d/%d\n",a,b,a,b);
for(c=0;a>=b&&b>0;c++)
{a-=b;}//aからb減算
printf("\n帯分数:%dと%d/%d\n",c,a,b);
printf("\n小数:%d.",c);
for(i=0;i<6;i++){ // 小数点第7以下切り捨て
a=a*10; // シフト移動の代わり
for(c=0;a>=b&&b>0;c++)
{a-=b;}
printf("%d",c);
}
}
190 うそとまこと
2020/10/30(金) 09:02:59 ID: mRTiGgRl1l
***引き算で割り算***
減算だけでa÷bを計算します
a:10
b:3
10÷3=10/3
帯分数:3と1/3
小数:3.333333
***引き算で割り算***
減算だけでa÷bを計算します
a:1
b:6
1÷6=1/6
帯分数:0と1/6
小数:0.166666
***引き算で割り算***
減算だけでa÷bを計算します
a:3
b:0
3÷0=3/0
帯分数:0と3/0
小数:0.000000
191 ななしのよっしん
2020/11/16(月) 03:22:22 ID: lzOabReQcQ
ID: mRTiGgRl1l さんへ
掲示板は研究発表をする場所ではありません。今後は自分のユーザーページでやっていただけませんか。
192 うそとまこと
2020/11/21(土) 17:14:45 ID: mRTiGgRl1l
【Sci-pursuit・数学・分数・帯分数の計算方法と仮分数への書き直し方・仮分数を帯分数に直す方法参照】
https://
申し訳ありません。余り→帯分数に関しては自分が考えたものではありませんし、ましてや研究発表をしたつもりもありません。
上記のサイトに記載してあったことをプログラムに当て嵌めただけです。もし何かしらの問題などがあるようなら削除依頼を出しますのでご一報ください。
193 ななしのよっしん
2021/02/04(木) 08:45:52 ID: EfIZZM03sm
りんごが10個あり、これを0人で分けようと思います。1人に何個行き渡り、何個余りますか?
これ「0」て「人」ていう定義すらできなんだろうな
正しく文章に直すと無とか「 」が正しいのかな?
りんごが10個あり、これを「 」で分けようと思います。1人に何個行き渡り、何個余りますか?
「 」で分けるてなんだよ?てなるわなわw
無?で分けるて消えるてことか?とも言える
194 ななしのよっしん
2021/03/27(土) 02:08:34 ID: SctYYbNkH/
195 ななしのよっしん
2021/05/02(日) 12:12:28 ID: ZiyasQz1wN
ふえぇ……ここ頭いい人しかいないよぉ……
196 ななしのよっしん
2021/08/03(火) 11:03:31 ID: RXGod7EreX
A(A≠0)に対して
A/0=Rと置くと
A=0R
2A=2・0R(もしくはA+A=0R+0R⇔2A=(0+0)R)
2A=0R
A=2Aで矛盾
これでFAだと思うんだが、いかんのか?
197 ななしのよっしん
2021/08/09(月) 01:43:58 ID: HaMFJqdJET
はじめに左辺が0倍して0にならない数であることを仮定していることになる
意図せずなのか2行目と5行目で0/0=1であるという仮定を使っている
なのでゼロ除算ができない根拠にゼロ除算を含む循環ができていてよろしくない
198 ななしのよっしん
2021/10/31(日) 13:03:28 ID: gbOrTQ0ZMy
199 ななしのよっしん
2021/10/31(日) 13:06:14 ID: BSHOvMfrAb
グダグダやっても結局ゼロ除算がダメな理由が説明できてなくて草
200 ななしのよっしん
2021/11/16(火) 18:06:43 ID: gHITew28e4
201 ななしのよっしん
2021/12/07(火) 09:14:07 ID: Zlk+6/qgYi
履修を拾ってくるバウンスとは関係ない
202 ななしのよっしん
2021/12/08(水) 02:19:50 ID: o4lnh92988
長々やってもダメなのが分かりきってるからな
203 ななしのよっしん
2022/01/08(土) 20:16:06 ID: RXGod7EreX
>>分数にはA/B = D/B+C(/は括線)という書き換えがあります。
すまん、これがよく分からんのだが、誰か解説してくれ
204 ななしのよっしん
2022/01/26(水) 13:19:45 ID: lI6cpugCMO
遂に禁止か
ほぼ万能の時間稼ぎ能力とその後の安定を保証する効果が噛み合い過ぎてた
205 ななしのよっしん
2022/01/27(木) 17:26:49 ID: 9yFec7cCdy
「やってはダメなこと」を名付けたカードを
作ってから禁止するウィザーズは慧眼だったのか?
206 ななしのよっしん
2022/07/06(水) 11:57:26 ID: nOHRsGSKqE
代数のところ面白いな
変な式書いてるとゼロが潜んでることもあるのか
207 ななしのよっしん
2022/07/22(金) 01:39:32 ID: LgN8eeyXjd
最近見つけた高校入試のおもろい問題
最終的に4=5を導出しちゃった計算過程が示され
「誤った対応をした箇所を指摘し、理由を説明せよ」
両辺をaで除したところで実はa=0だったというオチだが
与式がaxの2乗で始まっているのに「二次方程式」という
表現が一回も出ていないことで気付け、という趣旨
208 ななしのよっしん
2022/09/23(金) 08:37:25 ID: dYec9lgkt4
0除算にしても数のしての無限にしても、他の数のルールが適用できない以上は別の枠組みとして考えた方が良いってこと?
209 ななしのよっしん
2022/09/23(金) 08:47:00 ID: nYb13Q+Rye
一つのルールで制することができるほどこの世は単純じゃないってことよ
210 ななしのよっしん
2022/12/14(水) 23:11:41 ID: /9xO4E2Usl
ゼロ除算しました、って意味の記号作ればいいって着眼点はいいと思った。
ゼロ除算自体の発展にはなんの寄与もしないけどゼロ除算の可能性を排した事が式自体で表現できる。
いちいちすみっこに(ax=0)とか(b≠0)とか注釈つけなくて済むし。
ほめた!
ほめるを取消しました。
ほめるに失敗しました。
ほめるの取消しに失敗しました。