Index finite lists of positive integers: Difference between revisions

m
→‎base 11: bigint->mpfr
m (→‎base 11: bigint->mpfr)
Line 561:
===base 11===
{{trans|Sidef}}
<lang Phix>include bigintmpfr.e
 
functionprocedure rank(mpz r, sequence s)
for i=1 to length(s) do
s[i] = sprintf("%d",s[i])
end for
return bi_newmpz_set_str("0(11)"&r,join(s,'Aa'),11)
end functionprocedure
function unrank(bigintmpz i)
sequence res = split(bi_sprintmpz_get_str(i,11),'Aa')
for j=1 to length(res) do
{{res[j]}} = scanf(res[j],"%d")
Line 579:
sequence l = {1, 2, 3, 10, 100, 987654321}
bigintmpz n = rankmpz_init(l)
rank(n,l)
sequence u = unrank(n)
?{l,bi_sprintmpz_get_str(n),u}</lang>
{{out}}
<pre>
7,806

edits