Διορθώθηκε η ανάγνωση αριθμού από Κατάσταση (Inventory) ώστε να γυρνάει ο τύπος αριθμού όπως καταχωρήθηκε.
Δείτε το αλγόριθμο για την ακολουθία Fibonacci, όπου τις τιμές που βρίσκει κατά τον υπολογισμό τις γράφει σε μια κατάσταση εσωτερικά σε μια λάμδα συνάρτηση. Έτσι κάθε φορά δεν χρειάζεται να υπολογιστούν τα ίδια νούμερα.
Χρησιμοποιώ Decimal (Αριθμός) τύπο για να κρατήσω τα στοιχεία στη Κατάσταση.
659034621587630041982498215
Inventory
K=0:=0,1:=1
fib=Lambda K (x as decimal)-> {
If Exist(K, x) Then =Eval(K) :Exit
Def Ret as Decimal
Ret=If(x>1->Lambda(x-1)+Lambda(x-2), x)
Append K, x:=Ret
=Ret
}
For i=1 to 139 {
Print Fib(i)
}
\\ Write number to clipboard
clipboard str$(fib(139))
fib=Lambda K (x as decimal)-> {
If Exist(K, x) Then =Eval(K) :Exit
Def Ret as Decimal
Ret=If(x>1->Lambda(x-1)+Lambda(x-2), x)
Append K, x:=Ret
=Ret
}
For i=1 to 139 {
Print Fib(i)
}
\\ Write number to clipboard
clipboard str$(fib(139))
Και στα ελληνικά με παραλλαγή για να φτιάξουμε την εξαγωγή. Αλλάζουμε τα διαστήματα με το 160 που είναι το non brake space (και έτσι δεν εξαφανίζονται από το html)
Κατάσταση
Κ=0:=0,1:=1
Φιμπ=Λάμδα Κ (χ ως Αριθμός)-> {
Αν Υπάρχει(Κ, χ) Τότε =Εκφρ(Κ) :Έξοδος
Κάνε Απάντηση ως Αριθμός
Απάντηση=Αν(χ>1->Λάμδα(χ-1)+Λάμδα(χ-2), χ)
Προσθήκη Κ, χ:=Απάντηση
=Απάντηση
}
Έγγραφο Ε$
Για ι=0 έως 139 {
Ε$=Αλλαγή$(" ", ΧαρΚωδ$(160),Μορφή$("{0:-10} {1::-40}",Μορφή$("Φιμπ({0}}",ι), Φιμπ(ι)))+{
}
}
Φιμπ=Λάμδα Κ (χ ως Αριθμός)-> {
Αν Υπάρχει(Κ, χ) Τότε =Εκφρ(Κ) :Έξοδος
Κάνε Απάντηση ως Αριθμός
Απάντηση=Αν(χ>1->Λάμδα(χ-1)+Λάμδα(χ-2), χ)
Προσθήκη Κ, χ:=Απάντηση
=Απάντηση
}
Έγγραφο Ε$
Για ι=0 έως 139 {
Ε$=Αλλαγή$(" ", ΧαρΚωδ$(160),Μορφή$("{0:-10} {1::-40}",Μορφή$("Φιμπ({0}}",ι), Φιμπ(ι)))+{
}
}
Πρόχειρο Ε$
Φιμπ(0} 0
Φιμπ(1} 1
Φιμπ(2} 1
Φιμπ(3} 2
Φιμπ(4} 3
Φιμπ(5} 5
Φιμπ(6} 8
Φιμπ(7} 13
Φιμπ(8} 21
Φιμπ(9} 34
Φιμπ(10} 55
Φιμπ(11} 89
Φιμπ(12} 144
Φιμπ(13} 233
Φιμπ(14} 377
Φιμπ(15} 610
Φιμπ(16} 987
Φιμπ(17} 1597
Φιμπ(18} 2584
Φιμπ(19} 4181
Φιμπ(20} 6765
Φιμπ(21} 10946
Φιμπ(22} 17711
Φιμπ(23} 28657
Φιμπ(24} 46368
Φιμπ(25} 75025
Φιμπ(26} 121393
Φιμπ(27} 196418
Φιμπ(28} 317811
Φιμπ(29} 514229
Φιμπ(30} 832040
Φιμπ(31} 1346269
Φιμπ(32} 2178309
Φιμπ(33} 3524578
Φιμπ(34} 5702887
Φιμπ(35} 9227465
Φιμπ(36} 14930352
Φιμπ(37} 24157817
Φιμπ(38} 39088169
Φιμπ(39} 63245986
Φιμπ(40} 102334155
Φιμπ(41} 165580141
Φιμπ(42} 267914296
Φιμπ(43} 433494437
Φιμπ(44} 701408733
Φιμπ(45} 1134903170
Φιμπ(46} 1836311903
Φιμπ(47} 2971215073
Φιμπ(48} 4807526976
Φιμπ(49} 7778742049
Φιμπ(50} 12586269025
Φιμπ(51} 20365011074
Φιμπ(52} 32951280099
Φιμπ(53} 53316291173
Φιμπ(54} 86267571272
Φιμπ(55} 139583862445
Φιμπ(56} 225851433717
Φιμπ(57} 365435296162
Φιμπ(58} 591286729879
Φιμπ(59} 956722026041
Φιμπ(60} 1548008755920
Φιμπ(61} 2504730781961
Φιμπ(62} 4052739537881
Φιμπ(63} 6557470319842
Φιμπ(64} 10610209857723
Φιμπ(65} 17167680177565
Φιμπ(66} 27777890035288
Φιμπ(67} 44945570212853
Φιμπ(68} 72723460248141
Φιμπ(69} 117669030460994
Φιμπ(70} 190392490709135
Φιμπ(71} 308061521170129
Φιμπ(72} 498454011879264
Φιμπ(73} 806515533049393
Φιμπ(74} 1304969544928657
Φιμπ(75} 2111485077978050
Φιμπ(76} 3416454622906707
Φιμπ(77} 5527939700884757
Φιμπ(78} 8944394323791464
Φιμπ(79} 14472334024676221
Φιμπ(80} 23416728348467685
Φιμπ(81} 37889062373143906
Φιμπ(82} 61305790721611591
Φιμπ(83} 99194853094755497
Φιμπ(84} 160500643816367088
Φιμπ(85} 259695496911122585
Φιμπ(86} 420196140727489673
Φιμπ(87} 679891637638612258
Φιμπ(88} 1100087778366101931
Φιμπ(89} 1779979416004714189
Φιμπ(90} 2880067194370816120
Φιμπ(91} 4660046610375530309
Φιμπ(92} 7540113804746346429
Φιμπ(93} 12200160415121876738
Φιμπ(94} 19740274219868223167
Φιμπ(95} 31940434634990099905
Φιμπ(96} 51680708854858323072
Φιμπ(97} 83621143489848422977
Φιμπ(98} 135301852344706746049
Φιμπ(99} 218922995834555169026
Φιμπ(100} 354224848179261915075
Φιμπ(101} 573147844013817084101
Φιμπ(102} 927372692193078999176
Φιμπ(103} 1500520536206896083277
Φιμπ(104} 2427893228399975082453
Φιμπ(105} 3928413764606871165730
Φιμπ(106} 6356306993006846248183
Φιμπ(107} 10284720757613717413913
Φιμπ(108} 16641027750620563662096
Φιμπ(109} 26925748508234281076009
Φιμπ(110} 43566776258854844738105
Φιμπ(111} 70492524767089125814114
Φιμπ(112} 114059301025943970552219
Φιμπ(113} 184551825793033096366333
Φιμπ(114} 298611126818977066918552
Φιμπ(115} 483162952612010163284885
Φιμπ(116} 781774079430987230203437
Φιμπ(117} 1264937032042997393488322
Φιμπ(118} 2046711111473984623691759
Φιμπ(119} 3311648143516982017180081
Φιμπ(120} 5358359254990966640871840
Φιμπ(121} 8670007398507948658051921
Φιμπ(122} 14028366653498915298923761
Φιμπ(123} 22698374052006863956975682
Φιμπ(124} 36726740705505779255899443
Φιμπ(125} 59425114757512643212875125
Φιμπ(126} 96151855463018422468774568
Φιμπ(127} 155576970220531065681649693
Φιμπ(128} 251728825683549488150424261
Φιμπ(129} 407305795904080553832073954
Φιμπ(130} 659034621587630041982498215
Φιμπ(131} 1066340417491710595814572169
Φιμπ(132} 1725375039079340637797070384
Φιμπ(133} 2791715456571051233611642553
Φιμπ(134} 4517090495650391871408712937
Φιμπ(135} 7308805952221443105020355490
Φιμπ(136} 11825896447871834976429068427
Φιμπ(137} 19134702400093278081449423917
Φιμπ(138} 30960598847965113057878492344
Φιμπ(139} 50095301248058391139327916261
Δεν υπάρχουν σχόλια:
Δημοσίευση σχολίου
You can feel free to write any suggestion, or idea on the subject.