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

Reply via email to