Nth root: Difference between revisions

Content deleted Content added
Chkas (talk | contribs)
Razetime (talk | contribs)
add BQN
Line 635: Line 635:
}</lang>
}</lang>


=={{header|BQN}}==
There are two builtin methods to solve this problem(<code>√</code> and <code>⋆</code>), both give a result at the highest precision possible.

<code>Root2</code> is a translation of the [[Run BASIC]] implementation, which uses Newton's approximation method. It allows an optional argument for precision, and otherwise defaults to 10<sup>¯5</sup>.

<code>_while_</code> is a [https://mlochbaum.github.io/bqncrate/ BQNcrate] idiom used for unbounded looping here.

<lang bqn>_while_ ← {𝔽⍟𝔾∘𝔽_𝕣_𝔾∘𝔽⍟𝔾𝕩}
Root ← √
Root1 ← ⋆⟜÷˜
Root2 ← {
n 𝕊 a‿prec:
1⊑{
p‿x:
x
((p × n - 1) + a ÷ p ⋆ n - 1) ÷ n
} _while_ {
p‿x:
prec ≤ | p - x
} ⟨a, ⌊a÷n⟩;
𝕨 𝕊 𝕩: 𝕨 𝕊 𝕩‿1E¯5
}

•Show 3 Root 5
•Show 3 Root1 5
•Show 3 Root2 5
•Show 3 Root2 5‿1E¯16</lang>
<lang>1.7099759466766968
1.7099759466766968
1.7099759641072136
1.709975946676697</lang>

[https://mlochbaum.github.io/BQN/try.html#code=X3doaWxlXyDihpAge/CdlL3ijZ/wnZS+4oiY8J2UvV/wnZWjX/CdlL7iiJjwnZS94o2f8J2UvvCdlal9ClJvb3Qg4oaQIOKImgpSb290MSDihpAg4ouG4p+cw7fLnApSb290MiDihpAgewogIG4g8J2ViiBh4oC/cHJlYzoKICAx4oqRewogICAgcOKAv3g6CiAgICDin6gKICAgICAgeAogICAgICAoKHAgw5cgbiAtIDEpICsgYSDDtyBwIOKLhiBuIC0gMSkgw7cgbgogICAg4p+pCiAgfSBfd2hpbGVfIHsKICAgIHDigL94OgogICAgcHJlYyDiiaQgfCBwIC0geAogIH0g4p+oYSwg4oyKYcO3buKfqTsKICDwnZWoIPCdlYog8J2VqTog8J2VqCDwnZWKIPCdlanigL8xRcKvNQp9CgrigKJTaG93IDMgUm9vdCA1CuKAolNob3cgMyBSb290MSA1CuKAolNob3cgMyBSb290MiA1CuKAolNob3cgMyBSb290MiA14oC/MUXCrzE2Cgo= Try It!]
=={{header|Bracmat}}==
=={{header|Bracmat}}==
Bracmat does not have floating point numbers as primitive type. Instead we have to use rational numbers. This code is not fast!
Bracmat does not have floating point numbers as primitive type. Instead we have to use rational numbers. This code is not fast!