P-Adic numbers, basic: Difference between revisions
Content added Content deleted
m (Improved code.) |
m (Improbved code.) |
||
Line 1,688: | Line 1,688: | ||
=={{header|Java}}== |
=={{header|Java}}== |
||
This example displays p-adic numbers in standard mathematical format, consisting of a possibly infinite list of digits extending leftwards from the p-adic point. p-adic numbers are given correct to O(prime^40) and the rational reconstruction is correct to O(prime^20). |
This example displays p-adic numbers in standard mathematical format, consisting of a possibly infinite list of digits extending leftwards from the p-adic point. p-adic numbers are given correct to O(prime^40) and the rational reconstruction is correct to O(prime^20). |
||
<syntaxhighlight lang="java"> |
<syntaxhighlight lang="java"> |
||
import java.util.ArrayList; |
import java.util.ArrayList; |
||
Line 1,876: | Line 1,876: | ||
public String toString() { |
public String toString() { |
||
List<Integer> numbers = new ArrayList<Integer>(digits); |
List<Integer> numbers = new ArrayList<Integer>(digits); |
||
⚫ | |||
padWithZeros(numbers); |
padWithZeros(numbers); |
||
⚫ | |||
String numberString = numbers.stream().map(String::valueOf).collect(Collectors.joining()); |
String numberString = numbers.stream().map(String::valueOf).collect(Collectors.joining()); |
||
StringBuilder builder = new StringBuilder(numberString); |
StringBuilder builder = new StringBuilder(numberString); |
||
Line 1,884: | Line 1,884: | ||
for ( int i = 0; i < order; i++ ) { |
for ( int i = 0; i < order; i++ ) { |
||
builder.append("0"); |
builder.append("0"); |
||
⚫ | |||
} |
} |
||
Line 1,890: | Line 1,889: | ||
} else { |
} else { |
||
builder.insert(builder.length() + order, "."); |
builder.insert(builder.length() + order, "."); |
||
while ( builder.toString().endsWith("0") ) { |
|||
⚫ | |||
} |
|||
} |
} |
||
return " ..." + builder.toString().substring(builder.length() - PRECISION - |
return " ..." + builder.toString().substring(builder.length() - PRECISION - 1); |
||
} |
} |
||
Line 2,026: | Line 2,029: | ||
<pre> |
<pre> |
||
3-adic numbers: |
3-adic numbers: |
||
-5 / 9 => ... |
-5 / 9 => ...22222222222222222222222222222222222222.11 |
||
47 / 12 => ... |
47 / 12 => ...020202020202020202020202020202020202101.2 |
||
sum => ... |
sum => ...20202020202020202020202020202020202101.01 |
||
Rational = 121 / 36 |
Rational = 121 / 36 |
||
7-adic numbers: |
7-adic numbers: |
||
5 / 8 => ... |
5 / 8 => ...424242424242424242424242424242424242425.0 |
||
353 / 30809 => ... |
353 / 30809 => ...560462505550343461155520004023663643455.0 |
||
sum => ... |
sum => ...315035233123101033613062431266421216213.0 |
||
Rational = 156869 / 246472 |
Rational = 156869 / 246472 |
||
</pre> |
</pre> |