Metallic ratios: Difference between revisions
Content added Content deleted
m (used a bigger font to show the superscripts better (so as to aid readability), indented the formulas and centered the HTML table.) |
|||
Line 414: | Line 414: | ||
After 615 iterations, the value of 1.6180339887498948482045868343656381177203091798057628621354486227052604628189024497072072041893911374847540880753868917521266338622235369317931800607667263544333890865959395829056383226613199282902678806752087668925017116962070322210432162695486262963136144 is stable to 256 decimal places. |
After 615 iterations, the value of 1.6180339887498948482045868343656381177203091798057628621354486227052604628189024497072072041893911374847540880753868917521266338622235369317931800607667263544333890865959395829056383226613199282902678806752087668925017116962070322210432162695486262963136144 is stable to 256 decimal places. |
||
</pre> |
</pre> |
||
=={{header|Kotlin}}== |
|||
{{trans|Go}} |
|||
<lang scala>import java.math.BigDecimal |
|||
import java.math.BigInteger |
|||
val names = listOf("Platinum", "Golden", "Silver", "Bronze", "Copper", "Nickel", "Aluminium", "Iron", "Tin", "Lead") |
|||
fun lucas(b: Long) { |
|||
println("Lucas sequence for ${names[b.toInt()]} ratio, where b = $b:") |
|||
print("First 15 elements: ") |
|||
var x0 = 1L |
|||
var x1 = 1L |
|||
print("$x0, $x1") |
|||
for (i in 1..13) { |
|||
val x2 = b * x1 + x0 |
|||
print(", $x2") |
|||
x0 = x1 |
|||
x1 = x2 |
|||
} |
|||
println() |
|||
} |
|||
fun metallic(b: Long, dp:Int) { |
|||
var x0 = BigInteger.ONE |
|||
var x1 = BigInteger.ONE |
|||
var x2: BigInteger |
|||
val bb = BigInteger.valueOf(b) |
|||
val ratio = BigDecimal.ONE.setScale(dp) |
|||
var iters = 0 |
|||
var prev = ratio.toString() |
|||
while (true) { |
|||
iters++ |
|||
x2 = bb * x1 + x0 |
|||
val thiz = (x2.toBigDecimal(dp) / x1.toBigDecimal(dp)).toString() |
|||
if (prev == thiz) { |
|||
var plural = "s" |
|||
if (iters == 1) { |
|||
plural = "" |
|||
} |
|||
println("Value after $iters iteration$plural: $thiz\n") |
|||
return |
|||
} |
|||
prev = thiz |
|||
x0 = x1 |
|||
x1 = x2 |
|||
} |
|||
} |
|||
fun main() { |
|||
for (b in 0L until 10L) { |
|||
lucas(b) |
|||
metallic(b, 32) |
|||
} |
|||
println("Golden ration, where b = 1:") |
|||
metallic(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 |
|||
Value after 1 iteration: 1.00000000000000000000000000000000 |
|||
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 |
|||
Value after 78 iterations: 1.61803398874989484820458683436564 |
|||
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 |
|||
Value after 44 iterations: 2.41421356237309504880168872420970 |
|||
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 |
|||
Value after 34 iterations: 3.30277563773199464655961063373525 |
|||
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 |
|||
Value after 28 iterations: 4.23606797749978969640917366873128 |
|||
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 |
|||
Value after 25 iterations: 5.19258240356725201562535524577016 |
|||
Lucas sequence for Aluminium ratio, where b = 6: |
|||
First 15 elements: 1, 1, 7, 43, 265, 1633, 10063, 62011, 382129, 2354785, 14510839, 89419819, 551029753, 3395598337, 20924619775 |
|||
Value after 23 iterations: 6.16227766016837933199889354443272 |
|||
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 |
|||
Value after 22 iterations: 7.14005494464025913554865124576352 |
|||
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 |
|||
Value after 20 iterations: 8.12310562561766054982140985597408 |
|||
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 |
|||
Value after 20 iterations: 9.10977222864644365500113714088140 |
|||
Golden ration, where b = 1: |
|||
Value after 615 iterations: 1.6180339887498948482045868343656381177203091798057628621354486227052604628189024497072072041893911374847540880753868917521266338622235369317931800607667263544333890865959395829056383226613199282902678806752087668925017116962070322210432162695486262963136144</pre> |
|||
=={{header|Perl}}== |
=={{header|Perl}}== |