📄 bigint.html
字号:
<p><code>is_positive()</code> and <code>is_negative()</code> are aliase to <code>is_pos()</code> and
<code>is_neg()</code>, respectively. <code>is_positive()</code> and <code>is_negative()</code> were
introduced in v1.36, while <code>is_pos()</code> and <code>is_neg()</code> were only introduced
in v1.68.</p>
<p>
</p>
<h2><a name="is_odd___is_even___is_int__"><code>is_odd()/is_even()/is_int()</code></a></h2>
<pre>
<span class="variable">$x</span><span class="operator">-></span><span class="variable">is_odd</span><span class="operator">();</span> <span class="comment"># true if odd, false for even</span>
<span class="variable">$x</span><span class="operator">-></span><span class="variable">is_even</span><span class="operator">();</span> <span class="comment"># true if even, false for odd</span>
<span class="variable">$x</span><span class="operator">-></span><span class="variable">is_int</span><span class="operator">();</span> <span class="comment"># true if $x is an integer</span>
</pre>
<p>The return true when the argument satisfies the condition. <code>NaN</code>, <code>+inf</code>,
<code>-inf</code> are not integers and are neither odd nor even.</p>
<p>In BigInt, all numbers except <code>NaN</code>, <code>+inf</code> and <code>-inf</code> are integers.</p>
<p>
</p>
<h2><a name="bcmp">bcmp</a></h2>
<pre>
<span class="variable">$x</span><span class="operator">-></span><span class="variable">bcmp</span><span class="operator">(</span><span class="variable">$y</span><span class="operator">);</span>
</pre>
<p>Compares $x with $y and takes the sign into account.
Returns -1, 0, 1 or undef.</p>
<p>
</p>
<h2><a name="bacmp">bacmp</a></h2>
<pre>
<span class="variable">$x</span><span class="operator">-></span><span class="variable">bacmp</span><span class="operator">(</span><span class="variable">$y</span><span class="operator">);</span>
</pre>
<p>Compares $x with $y while ignoring their. Returns -1, 0, 1 or undef.</p>
<p>
</p>
<h2><a name="sign">sign</a></h2>
<pre>
<span class="variable">$x</span><span class="operator">-></span><span class="variable">sign</span><span class="operator">();</span>
</pre>
<p>Return the sign, of $x, meaning either <code>+</code>, <code>-</code>, <code>-inf</code>, <code>+inf</code> or NaN.</p>
<p>If you want $x to have a certain sign, use one of the following methods:</p>
<pre>
<span class="variable">$x</span><span class="operator">-></span><span class="variable">babs</span><span class="operator">();</span> <span class="comment"># '+'</span>
<span class="variable">$x</span><span class="operator">-></span><span class="variable">babs</span><span class="operator">()-></span><span class="variable">bneg</span><span class="operator">();</span> <span class="comment"># '-'</span>
<span class="variable">$x</span><span class="operator">-></span><span class="variable">bnan</span><span class="operator">();</span> <span class="comment"># 'NaN'</span>
<span class="variable">$x</span><span class="operator">-></span><span class="variable">binf</span><span class="operator">();</span> <span class="comment"># '+inf'</span>
<span class="variable">$x</span><span class="operator">-></span><span class="variable">binf</span><span class="operator">(</span><span class="string">'-'</span><span class="operator">);</span> <span class="comment"># '-inf'</span>
</pre>
<p>
</p>
<h2><a name="digit">digit</a></h2>
<pre>
<span class="variable">$x</span><span class="operator">-></span><span class="variable">digit</span><span class="operator">(</span><span class="variable">$n</span><span class="operator">);</span> <span class="comment"># return the nth digit, counting from right</span>
</pre>
<p>If <code>$n</code> is negative, returns the digit counting from left.</p>
<p>
</p>
<h2><a name="bneg">bneg</a></h2>
<pre>
<span class="variable">$x</span><span class="operator">-></span><span class="variable">bneg</span><span class="operator">();</span>
</pre>
<p>Negate the number, e.g. change the sign between '+' and '-', or between '+inf'
and '-inf', respectively. Does nothing for NaN or zero.</p>
<p>
</p>
<h2><a name="babs">babs</a></h2>
<pre>
<span class="variable">$x</span><span class="operator">-></span><span class="variable">babs</span><span class="operator">();</span>
</pre>
<p>Set the number to it's absolute value, e.g. change the sign from '-' to '+'
and from '-inf' to '+inf', respectively. Does nothing for NaN or positive
numbers.</p>
<p>
</p>
<h2><a name="bnorm">bnorm</a></h2>
<pre>
<span class="variable">$x</span><span class="operator">-></span><span class="variable">bnorm</span><span class="operator">();</span> <span class="comment"># normalize (no-op)</span>
</pre>
<p>
</p>
<h2><a name="bnot">bnot</a></h2>
<pre>
<span class="variable">$x</span><span class="operator">-></span><span class="variable">bnot</span><span class="operator">();</span>
</pre>
<p>Two's complement (bit wise not). This is equivalent to</p>
<pre>
<span class="variable">$x</span><span class="operator">-></span><span class="variable">binc</span><span class="operator">()-></span><span class="variable">bneg</span><span class="operator">();</span>
</pre>
<p>but faster.</p>
<p>
</p>
<h2><a name="binc">binc</a></h2>
<pre>
<span class="variable">$x</span><span class="operator">-></span><span class="variable">binc</span><span class="operator">();</span> <span class="comment"># increment x by 1</span>
</pre>
<p>
</p>
<h2><a name="bdec">bdec</a></h2>
<pre>
<span class="variable">$x</span><span class="operator">-></span><span class="variable">bdec</span><span class="operator">();</span> <span class="comment"># decrement x by 1</span>
</pre>
<p>
</p>
<h2><a name="badd">badd</a></h2>
<pre>
<span class="variable">$x</span><span class="operator">-></span><span class="variable">badd</span><span class="operator">(</span><span class="variable">$y</span><span class="operator">);</span> <span class="comment"># addition (add $y to $x)</span>
</pre>
<p>
</p>
<h2><a name="bsub">bsub</a></h2>
<pre>
<span class="variable">$x</span><span class="operator">-></span><span class="variable">bsub</span><span class="operator">(</span><span class="variable">$y</span><span class="operator">);</span> <span class="comment"># subtraction (subtract $y from $x)</span>
</pre>
<p>
</p>
<h2><a name="bmul">bmul</a></h2>
<pre>
<span class="variable">$x</span><span class="operator">-></span><span class="variable">bmul</span><span class="operator">(</span><span class="variable">$y</span><span class="operator">);</span> <span class="comment"># multiplication (multiply $x by $y)</span>
</pre>
<p>
</p>
<h2><a name="bdiv">bdiv</a></h2>
<pre>
<span class="variable">$x</span><span class="operator">-></span><span class="variable">bdiv</span><span class="operator">(</span><span class="variable">$y</span><span class="operator">);</span> <span class="comment"># divide, set $x to quotient</span>
<span class="comment"># return (quo,rem) or quo if scalar</span>
</pre>
<p>
</p>
<h2><a name="bmod">bmod</a></h2>
<pre>
<span class="variable">$x</span><span class="operator">-></span><span class="variable">bmod</span><span class="operator">(</span><span class="variable">$y</span><span class="operator">);</span> <span class="comment"># modulus (x % y)</span>
</pre>
<p>
</p>
<h2><a name="bmodinv">bmodinv</a></h2>
<pre>
<span class="variable">num</span><span class="operator">-></span><span class="variable">bmodinv</span><span class="operator">(</span><span class="variable">$mod</span><span class="operator">);</span> <span class="comment"># modular inverse</span>
</pre>
<p>Returns the inverse of <code>$num</code> in the given modulus <code>$mod</code>. '<code>NaN</code>' is
returned unless <code>$num</code> is relatively prime to <code>$mod</code>, i.e. unless
<code>bgcd($num, $mod)==1</code>.</p>
<p>
</p>
<h2><a name="bmodpow">bmodpow</a></h2>
<pre>
<span class="variable">$num</span><span class="operator">-></span><span class="variable">bmodpow</span><span class="operator">(</span><span class="variable">$exp</span><span class="operator">,</span><span class="variable">$mod</span><span class="operator">);</span> <span class="comment"># modular exponentation</span>
<span class="comment"># ($num**$exp % $mod)</span>
</pre>
<p>Returns the value of <code>$num</code> taken to the power <code>$exp</code> in the modulus
<code>$mod</code> using binary exponentation. <code>bmodpow</code> is far superior to
writing</p>
<pre>
$num ** $exp % $mod</pre>
<p>because it is much faster - it reduces internal variables i
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -