Based on what I’ve seen in this discussion and info from reading the
list for several years, LiveCode has difficulty with very large
numbers. So, that is why you can simply do this for Problem 3.
Correct?
function ShowTheFirst100Fibonacci
local tTheFirst100Fibonacci
put "0,1," into tTheFirst100Fibonacci
repeat 98
put (item -1 tTheFirst100Fibonacci + item -2
tTheFirst100Fibonacci) & "," after tTheFirst100Fibonacci
end repeat
delete char -1 tTheFirst100Fibonacci -- removes trailing comma
return tTheFirst100Fibonacci
end ShowTheFirst100Fibonacci
Yes - as it stands, the engine can only represent integers accurately up
to 52 bits so that's the maximum of 4503599627370496. This is because
numbers are all represented internally (in variables) as IEEE double's.
Above numbers of that size, the 'floating point' aspect starts coming
into play (at any particular magnitude of number you get 52 bits of
precision, so numbers get 'less accurate' as they get much bigger, or
much smaller).
But, what about something like this for Problem 4…
function ShowLargestNumber theList
local tCharsToUse
local tLargestNumber
-- create each digit as a separte item
repeat for each char theCharToCheck in theList
if theCharToCheck is a number then
put theCharToCheck & "," after tCharsToUse
end if
end repeat
sort items of tCharsToUse descending numeric
delete char -1 tCharsToUse -- remove trailing comma
-- remove all commas to make 1 number
repeat for each char theCharToCheck in tCharsToUse
if theCharToCheck is a number then
put theCharToCheck after tLargestNumber
end if
end repeat
return tLargestNumber
end ShowLargestNumber
I think this is the one that has perhaps caused a bit of consternation.
That method works for 'most' sequences, but there are some edge cases
which it doesn't catch. In particular, when you have numbers with the
same initial prefix, the order they should be chosen in depends on both
the leading digit and the length of the number.
--
Mark Waddingham ~ [email protected] ~ http://www.livecode.com/
LiveCode: Everyone can create apps
_______________________________________________
use-livecode mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode