民科吧 关注:374,674贴子:4,907,133

民科编程大赛:用四则运算开平方

只看楼主收藏回复

规则:
仅仅使用加减乘除四则运算进行任意正数的算数平方根运算
可以多次迭代
精度要求到小数点后的6位
有能做出来的民科吗


IP属地:安徽来自Android客户端1楼2020-07-13 12:57回复
    这个挺简单啊,就是麻烦点


    IP属地:山东来自iPhone客户端2楼2020-07-13 13:08
    收起回复
      2025-05-21 06:31:30
      广告
      二分法


      IP属地:广东来自Android客户端3楼2020-07-13 13:21
      收起回复
        补充一下,不会编程的民科也可以手算


        IP属地:安徽来自Android客户端4楼2020-07-13 13:27
        回复
          估计大部分民科可能还没学到数值计算和数值分析


          来自Android客户端5楼2020-07-13 13:32
          收起回复
            简单啊。瞬间想到3个方法


            IP属地:湖南来自Android客户端7楼2020-07-13 13:36
            收起回复
              upper=n
              lower=0
              mid=n/2
              for(mid;0.00001<mid*mid-n;mid=(upper+lower)/2){
              if(mid*mid<n){
              lower=mid
              }else{
              upper=mid
              }
              }
              手机上简单打了一下,应该是这样吧


              星座王
              点亮12星座印记,去领取
              活动截止:2100-01-01
              去徽章馆》
              IP属地:上海来自Android客户端9楼2020-07-13 13:40
              收起回复
                手算我在1984年就会了。


                IP属地:重庆来自Android客户端10楼2020-07-13 13:43
                收起回复
                  2025-05-21 06:25:30
                  广告
                  我介绍一下方法:
                  ①(10a+b)²=100a²+20ab+b²
                  =(10a)²+b(20a+b)
                  ②小数点对齐
                  ③以小数点为基准依次向左向右两位数字右上方加'(分号)间隔开
                  ④写根式,从左向右依次用短除法开平方,这时不再考虑到小数点了。先开出a,取a²作为减数,用被开方数作为被减数作差。接着在差后面补充右边相邻的两个数字,试着找b,用上面的新被减数-b(20a+b),得到差。
                  ⑤再接着补充右边相邻两个数字,把前面的根号左上方的数全当作a(不再考虑小数点),重复④开平方,直至结束,开1万位小数都不难。


                  IP属地:重庆来自Android客户端11楼2020-07-13 14:01
                  收起回复
                    这里面的95%的人都不会,包括楼主、大姨妈等。


                    IP属地:重庆来自Android客户端12楼2020-07-13 14:03
                    收起回复
                      甭问,我不是民科,我也不会


                      IP属地:山东来自iPhone客户端13楼2020-07-13 14:30
                      回复


                        IP属地:重庆来自Android客户端14楼2020-07-13 14:36
                        收起回复
                          博士们:
                          你们学会了吗?


                          IP属地:重庆来自Android客户端15楼2020-07-13 14:37
                          回复
                            本萌用powershell复刻了一下9楼的算法

                            99开方到百万分之一精度需要28次运算:


                            IP属地:安徽16楼2020-07-13 14:38
                            收起回复
                              2025-05-21 06:19:30
                              广告
                              用9楼的算法计算大数就比较慢,比如根号123456789需要58次迭代



                              IP属地:安徽17楼2020-07-13 14:43
                              回复