【发布时间】:2019-10-06 11:41:34
【问题描述】:
我想写一个代码,它可以帮助我减少答案的范围,直到我找到它。例如,S=0:0.001:1;我必须找到一个平方为 0.09 的值,即是,x^2=0.09,答案是0.3
现在,如果我每次都猜中位数,那就是,
第一次我猜是“0.5”,但 0.5^2=0.25,不是 0.09,所以范围变成 S=0:0.001:0.5
第二次我猜是“0.25”,但 0.25^2=0.0625,不是 0.09.so 范围变成 S=0.25:0.001:0.5
第三次我猜是 (0.25+0.5)/2=0.375,但 0.375^2=0.140625,不是 0.09,所以范围变成 S=0.25:0.001:0.375
所以范围会不断减小,直到我找到答案,范围的上限和下限之一将是我猜测的错误数字。但我不知道如何修改代码
我的原始代码
S=0:0.001:1;
x=0.5;
y=x^2;%not 0.09
S=0:0.001:x
q=0.25;
y=q^2;%not 0.09
S=q:0.001:x
w=0.375;
y=w^2%not 0.09
S=q:0.001:w %S=0.25:0.001:0.375
e=0.3125;
y=e^2 %not 0.09
S=e:0.001:w;
r=0.34;
y=r^2 %not 0.09
.
.
.
直到我发现y=0.09,所以我可以知道答案,但是,这段代码太长了,我想写一个while或for循环来找到答案,有人知道如何修改我的代码吗?
【问题讨论】: