Metallic ratios: Difference between revisions

Content deleted Content added
m →‎{{header|REXX}}: used a smaller font size to reduce scrolling for everybody.
SqrtNegInf (talk | contribs)
Added Perl example
Line 331:
Value to 256 dp after 615 iterations: 1.6180339887498948482045868343656381177203091798057628621354486227052604628189024497072072041893911374847540880753868917521266338622235369317931800607667263544333890865959395829056383226613199282902678806752087668925017116962070322210432162695486262963136144
</pre>
 
=={{header|Perl}}==
<lang perl>use strict;
use warnings;
use feature qw(say state);
use Math::AnyNum qw<:overload as_dec>;
 
sub gen_lucas {
my $b = shift;
my $i = 0;
return sub {
state @seq = (state $v1 = 1, state $v2 = 1);
($v2, $v1) = ($v1, $v2 + $b*$v1) and push(@seq, $v1) unless defined $seq[$i+1];
return $seq[$i++];
}
}
 
sub metallic {
my $lucas = shift;
my $places = shift || 32;
my $n = my $last = 0;
my @seq = $lucas->();
while (1) {
push @seq, $lucas->();
my $this = as_dec( $seq[-1]/$seq[-2], $places+1 );
last if $this eq $last;
$last = $this;
$n++;
}
$last, $n
}
 
my @name = <Platinum Golden Silver Bronze Copper Nickel Aluminum Iron Tin Lead>;
 
for my $b (0..$#name) {
my $lucas = gen_lucas($b);
printf "\n'Lucas' sequence for $name[$b] ratio, where b = $b:\nFirst 15 elements: " . join ', ', map { $lucas->() } 1..15;
printf "Approximated value %s reached after %d iterations\n", metallic(gen_lucas($b));
}
 
printf "\nGolden ratio to 256 decimal places %s reached after %d iterations", metallic(gen_lucas(1),256);</lang>
{{out}}
<pre>'Lucas' sequence for Platinum ratio, where b = 0:
First 15 elements: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
Approximated value 1 reached after 1 iterations
 
'Lucas' sequence for Golden ratio, where b = 1:
First 15 elements: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610
Approximated value 1.61803398874989484820458683436564 reached after 78 iterations
 
'Lucas' sequence for Silver ratio, where b = 2:
First 15 elements: 1, 1, 3, 7, 17, 41, 99, 239, 577, 1393, 3363, 8119, 19601, 47321, 114243
Approximated value 2.4142135623730950488016887242097 reached after 44 iterations
 
'Lucas' sequence for Bronze ratio, where b = 3:
First 15 elements: 1, 1, 4, 13, 43, 142, 469, 1549, 5116, 16897, 55807, 184318, 608761, 2010601, 6640564
Approximated value 3.30277563773199464655961063373525 reached after 34 iterations
 
'Lucas' sequence for Copper ratio, where b = 4:
First 15 elements: 1, 1, 5, 21, 89, 377, 1597, 6765, 28657, 121393, 514229, 2178309, 9227465, 39088169, 165580141
Approximated value 4.23606797749978969640917366873128 reached after 28 iterations
 
'Lucas' sequence for Nickel ratio, where b = 5:
First 15 elements: 1, 1, 6, 31, 161, 836, 4341, 22541, 117046, 607771, 3155901, 16387276, 85092281, 441848681, 2294335686
Approximated value 5.19258240356725201562535524577016 reached after 25 iterations
 
'Lucas' sequence for Aluminum ratio, where b = 6:
First 15 elements: 1, 1, 7, 43, 265, 1633, 10063, 62011, 382129, 2354785, 14510839, 89419819, 551029753, 3395598337, 20924619775
Approximated value 6.16227766016837933199889354443272 reached after 23 iterations
 
'Lucas' sequence for Iron ratio, where b = 7:
First 15 elements: 1, 1, 8, 57, 407, 2906, 20749, 148149, 1057792, 7552693, 53926643, 385039194, 2749201001, 19629446201, 140155324408
Approximated value 7.14005494464025913554865124576352 reached after 22 iterations
 
'Lucas' sequence for Tin ratio, where b = 8:
First 15 elements: 1, 1, 9, 73, 593, 4817, 39129, 317849, 2581921, 20973217, 170367657, 1383914473, 11241683441, 91317382001, 741780739449
Approximated value 8.12310562561766054982140985597408 reached after 20 iterations
 
'Lucas' sequence for Lead ratio, where b = 9:
First 15 elements: 1, 1, 10, 91, 829, 7552, 68797, 626725, 5709322, 52010623, 473804929, 4316254984, 39320099785, 358197153049, 3263094477226
Approximated value 9.1097722286464436550011371408814 reached after 20 iterations
 
Golden ratio to 256 decimal places 1.6180339887498948482045868343656381177203091798057628621354486227052604628189024497072072041893911374847540880753868917521266338622235369317931800607667263544333890865959395829056383226613199282902678806752087668925017116962070322210432162695486262963136144 reached after 615 iterations</pre>
 
=={{header|Perl 6}}==