๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
the others/Algorithm

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ Math.sqrt( ) ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์ œ๊ณฑ๊ทผ ๊ตฌํ•˜๊ธฐ

by ciocio 2021. 8. 17.

๐Ÿ“Œ  ๋ฐ”๋นŒ๋กœ๋‹ˆ์•„ ๋ฐฉ๋ฒ• Babylonian method

 

 

Babylonian method

 

 

 

์–ด๋–ค ๊ฐ’์„ ๋„ฃ๋“ ์ง€ ์ ํ™”์‹์„ ๋ฐ˜๋ณตํ•˜๋‹ค๋ณด๋ฉด ๊ฒฐ๊ตญ, Xn+1์ด S์˜ ์ œ๊ณฑ๊ทผ์— ๊ทผ์ ‘ํ•˜๋Š” ์ˆœ๊ฐ„์ด ์˜จ๋‹ค. (๊ทธ์น˜๋งŒ ๊ทธ๊ฒŒ ์–ธ์ œ์ผ์ง€๋Š” ๋ณด์žฅ๋ชปํ•จ)

 

 

 

๐Ÿ“Œ  ์ฝ”๋“œ๋กœ ๊ตฌํ˜„ํ•˜๊ธฐ

 

 

โ—พ ์ดˆ๊ธฐ์•ˆ

 

 

์ˆ˜๋„ ์ฝ”๋“œ

 

 

โ—พ ์ฝ”๋“œ ๊ตฌํ˜„

 

 

๊ฐ’์€ ์ž˜ ๋‚˜์˜ค๋Š”๋ฐ ... 

๊ตฌ์ฒด์ ์œผ๋กœ ์ฝ”๋“œ๊ฐ€ ์–ด๋–ป๊ฒŒ ๊ตฌ๋™ํ•˜๋Š” ์ง€ ๊ถ๊ธˆํ–ˆ๋‹ค.

 

 

 

โ—พ ๋ฌธ์ œ์ 

 

๊ทผ์‚ฌ๊ฐ’์ด ์ ์  ์›๋ž˜๊ฐ’์˜ ์ œ๊ณฑ๊ทผ์— ๊ฐ€๊นŒ์›Œ์ง€๋Š” ๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ... ๊ทผ์‚ฌ๊ฐ’์€ ๊ฒฐ๊ตญ 3.xxxxxxxxxxx ํ˜•์‹์„ ๋„˜์ง€ ๋ชปํ•œ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  9๊ฐ™์ด ์ œ๊ณฑ๊ทผ์ด ์ •์ˆ˜๋กœ ๋–จ์–ด์ง€๋Š” ์ˆซ์ž ์ด์™ธ์˜ ๊ฐ’์„ ์ž…๋ ฅ๋ฐ›์œผ๋ฉด while๋ฌธ์ด ๋ฌดํ•œ๋ฐ˜๋ณต๋ ๊ฒŒ ๋ป”ํ•˜๋‹ค.

๋ฌดํ•œ๋ฐ˜๋ณต์„ ๋Š์–ด์ค„ break๋ฌธ์ด ํ•„์š”ํ•˜๊ณ ,  ->  break

๊ทธ ์กฐ๊ฑด์€ ์†Œ์ˆ˜์  ์ž๋ฆฌ์ˆ˜๋ฅผ ์ง€์ •ํ•ด ๊ทธ ๊ฐ’์„ ๋Š์–ด ๊ณ„์‚ฐํ•  ํ•„์š”์„ฑ์„ ๋Š๊ผˆ๋‹ค.  ->  .toFixed(์†Œ์ˆ˜์  ์ž๋ฆฌ์ˆ˜)

 

 

์†Œ์ˆ˜์  ์ž๋ฆฌ์™€ ์ƒ๊ด€์—†์ด ๊ฐ’์€ ๊ฐ™๋‹ค๊ณ  ๋‚˜์˜ค๋‹ˆ ok ok

 

 

๊ทธ๋Ÿฐ๋ฐ toFixed( ) ๋ฉ”์†Œ๋“œ๋Š” ์™œ ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•˜๊ณ  ๋‚œ๋ฆฌ ... ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•ด์ค˜์•ผํ•œ๋‹ค.  ->  Number( )

 

 

โ—พ ๋ฌธ์ œ ํ•ด๊ฒฐ ์ฝ”๋“œ

 

 

์™€์•„์•„์•„์•„์•„์•„์•„

Math.sqrt( ) ์•ˆ์“ฐ๊ณ ๋„ ์ œ๊ณฑ๊ทผ์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด๋ƒˆ๋‹ค ~!~!~!

์ˆ˜๋„์ฝ”๋“œ ์“ฐ๋ฉด์„œ ํ•˜๋‚˜ ํ•˜๋‚˜ ๊ตฌํ˜„ํ•ด๋‚˜๊ฐ€๋‹ˆ๊นŒ ๋˜๋Š”๊ตฌ๋‚ญ ์˜ฌ๋ ˆ

 

 

โ—พ ์ตœ์ข… ์ฝ”๋“œ

 

// Math.sqrt() ์•ˆ์“ฐ๊ณ  ์ œ๊ณฑ๊ทผ ๊ตฌํ•˜๊ธฐ ์ฝ”๋“œ

function makeSquareRoot(num){

  let approxNum = num / 2;
  
  while((approxNum ** 2) !== num){
  
    if(Number((approxNum ** 2).toFixed(2)) === num){
      break;
    }
    
    approxNum = (approxNum + (num / approxNum)) / 2;
  
  }
  
  return Number(approxNum.toFixed(2));
}

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€