text[Limit - i + 1]:=tdigit[digit[i]]; % Reversing the order. next i; % Arabic numerals put the low order last. Print text," = ",n,"!"; % Print the result! next n; % On to the next factorial up. END; With the example in view, a number of details can be discussed. The most important is the choice of the representation of the big number. In this case, only integer values are required for digits, so an array of fixed-width integers is adequate. It is convenient to have successive elements of the array represent higher powers of the base. The second most important decision is in the choice of the base of arithmetic, here ten. There are many considerations. The scratchpad variable d must be able to hold the result of a single-digit multiply plus the carry from the prior digit's multiply. In base ten, a sixteen-bit integer is certainly adequate as it allows up to 32767. However, this example cheats, in that the value of n is not itself limited to a single digit. This has the consequence that the method will fail for n > 3200 or so. In a more general implementation, n would also use a multi-digit representation. A second consequence of the shortcut is that after the multi-digit multiply has been completed, the last value of carry may need to be carried into multiple higher-order digits, not just one. There is also the issue of printing the result in base ten, for human consideration. Because the base is already ten, the result could be shown simply by printing the successive digits of array digit, but they would appear with the highest-order digit last (so that 123 would appear as "321"). The whole array could be printed in reverse order, but that would present the number with leading zeroes ("00000...000123") which may not be appreciated, so this implementation builds the representation in a space-padded text variable and then prints that. The first few results (with spacing every fifth digit and annotation added here) are: This implementation could make more effective use of the computer's built in arithmetic. A simple escalation would be to use base 100 (with corresponding changes to the translation process for output), or, with sufficiently wide computer variables (such as 32-bit integers) we could use larger bases, such as 10,000. Working in a power-of-2 base closer to the computer's built-in integer operations offers advantages, although conversion to a decimal base for output becomes more difficult. On typical modern computers, additions and multiplications take constant time independent of the values of the operands (so long as the operands fit in single machine words), so there are large gains in packing as much of a bignumber as possible into each element of the digit array. The computer may also offer facilities for splitting a product into a digit and carry without requiring the two operations of mod and div as in the example, and nearly all arithmetic units provide a carry flag which can be exploited in multiple-precision addition and subtraction. This sort of detail is the grist of machine-code programmers, and a suitable assembly-language bignumber routine can run much faster than the result of the compilation of a high-level language, which does not provide access to such facilities. For a single-digit multiply the working variables must be able to hold the value (base-1)2 + carry, where the maximum value of the carry is (base-1). Similarly, the variables used to index the digit array are themselves limited in width. A simple way to extend the indices would be to deal with the bignumber's digits in blocks of some convenient size so that the addressing would be via (block i, digit j) where i and j would be small integers, or, one could escalate to employing bignumber techniques for the indexing variables. Ultimately, machine storage capacity and execution time impose limits on the problem size. IBM's first business computer, the IBM 702 (a vacuum-tube machine) of the mid-1950s, implemented integer arithmetic entirely in hardware on digit strings of any length from 1 to 511 digits. The earliest widespread software implementation of arbitrary-precision arithmetic was probably that in Maclisp. Later, around 1980, the operating systems VAX/VMS and VM/CMS offered bignum facilities as a collection of string functions in the one case and in the languages EXEC 2 and REXX in the other. An early widespread implementation was available via the IBM 1620 of 1959–1970. The 1620 was a decimal-digit machine which used discrete transistors, yet it had hardware (that used lookup tables) to perform integer arithmetic on digit strings of a length that could be from two to whatever memory was available. For floating-point arithmetic, the mantissa was restricted to a hundred digits or fewer, and the exponent was restricted to two digits only. The largest memory supplied offered 60 000 digits, however Fortran compilers for the 1620 settled on fixed sizes such as 10, though it could be specified on a control card if the default was not satisfactory. Arbitrary-precision arithmetic in most computer software is implemented by calling an external library that provides data types and subroutines to store numbers with the requested precision and to perform computations. Different libraries have different ways of representing arbitrary-precision numbers, some libraries work only with integer numbers, others store floating point numbers in a variety of bases (decimal or binary powers). Rather than representing a number as single value, some store numbers as a numerator/denominator pair (rationals) and some can fully represent computable numbers, though only up to some storage limit. Fundamentally, Turing machines cannot represent all real numbers, as the cardinality of ℝ exceeds the cardinality of ℤ.
23 hours 56 minutes 04. 09053 seconds, exactly
Do you mean how fast does the earth rotate? The Earth rotates once in a few minutes under a day (23 hours 56 minutes 04. 09053 seconds). This is called the sidereal period. The sidereal period is not exactly equal to a day because by the time the Earth has rotated once, it has also moved around the Sun, so it has to keep rotating for about another 4 minutes before the Sun seems to be back in the same place in the sky that it was in exactly a day before. As far as revolving around the sun, You can't measure the speed of an object by itself, it has to be measured relative to something else (this was one of Einstein's realizations). If we ask the question, "How fast the Earth is moving?" we have to specify that we want the speed with respect to another object. Motion cannot be measured without a reference point. We can ask how fast the earth is moving with respect to its own axis, the Sun, the Milky Way Galaxy, or our Local Group of galaxies
ALL THAT'S WRITTEN BENEATH MY ANSWER IS WRONG!The question is what is Earth's "ROTATION SPEED". The former answer below discusses what an individual's "TANGENTIAL SPEED" or "linear speed" is which is based on the radius to the axis of rotation.ROTATIONAL SPEED is the measure of the number of rotations per unit of time. Therefore the broad value is the earth rotates once per 24 hours. A valid rotation speed could be 1 rotation/day or 0.042 rotations per hour or .000694 rotations per minute or "rpm". Rotational speed is independent of any radius. Rotational speed is the same for all objects located on the Earth.Just as on a bicycle wheel that is spinning. Locations further from the axis will have greater TANGENTIAL speed. But they all complete one ROTATION at the same time.If you're wanting to know how fast YOU'RE going in distance/time while on the Earth, then yes, you'd need to know the radius of the Earth at your specific latitude.------------------That depends on where on Earth you are standing. At the poles, the Earth hardly spins at all, but as you travel towards the equator, the rotational speed picks up. This makes sense -- as the circumference of a circle increases, a single point along it has to travel faster to complete a revolution in the same amount of time.The rotational speed of the Earth at the equator is about 1,038 miles per hour. The atmosphere at the equator is also slightly thicker due to rotation, and you weigh slightly less. At mid-latitudes, the speed of the Earth's rotation decreases to 700 to 900 miles per hour.If the Earth were to stop spinning suddenly, the atmosphere would still be zipping along nicely at around 1,000 miles an hour. As a result, everything not attached to bedrock would pretty much be scoured clean.If you have any more questions about the Earth's rotation, check out this nifty Ask a Space Scientist page. Looking for a cosmic perspective on how fast the earth is moving? Remember that all questions about motion or speed are only complete with an appropriate frame of reference.