Irradiance: Difference between revisions

From formulasearchengine
Jump to navigation Jump to search
en>DuckMaestro
m Adds link to 'Radiance'
en>Tom.Reding
m Gen fixes (page/s, endash, &nbsp, et al., unicodify, and/or concising wikilinks, etc.), & ref cleanup using AWB
 
Line 1: Line 1:
{{About|the mathematical algorithm|the judicial chamber of the International Criminal Court|Judges of the International Criminal Court}}


'''Trial division''' is the most laborious but easiest to understand of the [[integer factorization]] algorithms.  The essential ideal behind trial division tests to see if an integer ''n'', the integer to be factored, can be divided by each number in turn that is less than ''n''.  For example, for the integer {{math|1=n {{=}} 12}}, the only numbers that divide it are 1,2,3,4,6,12.  Selecting only the largest powers of [[prime number|primes]] in this list gives that {{math|1=12 {{=}} 3 × 4}}.


== Method ==
Enable me very first commence by introducing myself. My name is Laraine but you can phone me just about anything you like. Curing individuals has been my career for some time. To hold bees is a point that I'm thoroughly addicted to. [http://Www.Dailymail.Co.uk/home/search.html?sel=site&searchPhrase=Montana Montana] is wherever our household is. Look at out the most current information on my web page: http://futuna.csail.mit.edu:8080/mediawiki/User:ShaunteFetherst<br><br>My page [http://futuna.csail.mit.edu:8080/mediawiki/User:ShaunteFetherst Nike air max command leather]
Given an integer ''n'' (throughout this article, ''n'' refers to "the integer to be factored"), trial division consists of systematically testing whether ''n'' is divisible by any smaller number. Clearly, it is only worthwhile to test candidate factors less than ''n'', and in order from two upwards because an arbitrary ''n'' is more likely to be divisible by two than by three, and so on. With this ordering, there is no point in testing for divisibility by four if the number has already been determined not divisible by two, and so on for three and any multiple of three, etc.  Therefore, effort can be reduced by selecting only [[Prime_number|prime numbers]] as candidate factors. Furthermore, the trial factors need go no further than <math>\scriptstyle\sqrt{n}</math> because, if ''n'' is divisible by some number ''p'', then ''n = p&times;q'' and if ''q'' were smaller than ''p'', ''n'' would have earlier been detected as being divisible by ''q'' or a prime factor of ''q''.
 
A definite bound on the prime factors is possible. Suppose ''P<sub>i</sub>'' is the ''i'''th prime, so that ''P<sub>1</sub>'' = 2, ''P<sub>2</sub>'' = 3, ''P<sub>3</sub>'' = 5, etc. Then the last prime number worth testing as a possible factor of ''n'' is ''P<sub>i</sub>'' where ''P<sup>2</sup><sub>i&nbsp;+&nbsp;1</sub>'' > ''n''; equality here would mean that ''P<sub>i&nbsp;+&nbsp;1</sub>'' is a factor. Thus, testing with 2, 3, and 5 suffices up to ''n'' = 48 not just 25 because the square of the next prime is 49, and below ''n'' = 25 just 2 and 3 are sufficient. Should the square root of ''n'' be integral, then it is a factor and ''n'' is a [[square number|perfect square]].
 
An example of the trial division algorithm, using a [[Generating primes#Prime sieves|prime sieve]] for prime number generation, is as follows (in [[Python_(programming_language)|Python]]):
<source lang="python">
def trial_division(n):
    """Return a list of the prime factors for a natural number."""
    if n == 1: return [1]
    primes = prime_sieve(int(n**0.5) + 1)
    prime_factors = []
 
    for p in primes:
        if p*p > n: break
        while n % p == 0:
            prime_factors.append(p)
            n /= p
    if n > 1: prime_factors.append(n)
 
    return prime_factors
</source>
Trial division is guaranteed to find a factor of ''n'' if there is one, since it checks all possible prime factors of ''n''. Thus, if the algorithm finds one factor, n, it is proof that ''n'' is a [[Prime_number|prime]]. If more than one factor is found, then ''n'' is a [[composite number|composite integer]]. A more computationally advantageous way of saying this is, if any prime whose square does not exceed ''n'' divides it without a remainder, then ''n'' is not prime.
 
==Speed==
In the [[worst case]], trial division is a laborious algorithm. If it starts from two and works up to the square root of ''n'', the algorithm requires
 
:<math>\pi(\sqrt{n}) \approx {2\sqrt{n} \over \ln n}  </math>
 
trial divisions, where <math>\scriptstyle \pi(x)</math> denotes the [[prime-counting function]], the number of primes less than ''x''. This does not take into account the overhead of [[primality testing]] to obtain the prime numbers as candidate factors. A useful table need not be large: P(3512) = 32749, the last prime that fits into a sixteen-bit signed integer and P(6542) = 65521 for unsigned sixteen-bit integers. That would suffice to test primality for numbers up to 65537<sup>2</sup> = 4,295,098,369. Preparing such a table (usually via the [[Sieve of Eratosthenes]]) would only be worthwhile if many numbers were to be tested. If instead a variant is used without primality testing, but simply dividing by every odd number less than the square root of ''n'', prime or not, it can take up to about
 
:<math>{\sqrt{n}\over 2}</math>
 
trial divisions, which for large ''n'' is worse.
 
Even so, this is a quite satisfactory method. Difficulty arises only when large numbers are being considered. Typical talk is not of ''n'' but of the number of bits in ''n'', such as 1024. Thus, ''n'' is a number around 2<sup>1024</sup> which is about 10<sup>308</sup> so that factors up to about 10<sup>154</sup> would have to be tested, and even if only prime numbers were to be considered as factors, there are about 10<sup>151</sup> candidates. Further, because such large numbers far exceed the integer sizes of typical computers, [[Arbitrary-precision_arithmetic|arbitrary precision arithmetic]] techniques are required, at an enormous cost in time for each trial division. Thus in [[public key cryptography]], values for ''n'', chosen to have large prime factors of similar size, cannot be factored by any publicly known method in a useful time period on any available computer system or collective. Suppose that 10<sup>10</sup> computers could be set to the task (more than one per person on the entire globe), and that each could perform 10<sup>10</sup> trial divisions a second (well beyond current abilities); the collective could eliminate 10<sup>20</sup> factors a second. Then only 10<sup>134</sup> seconds (about 10<sup>126</sup> years) would be required to exhaust all candidates.
 
However, for ''n'' with at least one small factor, trial division can be a quick way to find that small factor. For ''n'' chosen uniformly at random from integers of a given length, there is a 50% chance that 2 is a factor of ''n'', and a 33% chance that 3 is a factor, and so on. It can be shown that 88% of all positive integers have a factor under 100, and that 92% have a factor under 1000. Thus, when confronted by an arbitrary large n, it is worthwhile to check for divisibility by the small primes. With a binary (or decimal) representation, it should be immediately apparent whether the number is divisible by two, for example.
 
For most significant factoring concerns, however, [[Integer_factorization#Factoring_algorithms | other algorithms]] are more efficient and therefore feasible.
 
==References==
{{reflist}}
* {{cite book | last=Childs | first=Lindsay N. | authorlink= | title=A concrete introduction to higher algebra | edition=3rd | series=Undergraduate Texts in Mathematics | location=New York, NY | publisher=[[Springer-Verlag]] | year=2009 | isbn=978-0-387-74527-5 | zbl=1165.00002 }}
* {{cite book | last1=Crandall | first1=Richard | author1-link=Richard Crandall | last2=Pomerance | first2=Carl | author2-link=Carl Pomerance | title=Prime numbers. A computational perspective | edition=2nd | location=New York, NY | publisher=[[Springer-Verlag]] | year=2005 | isbn=0-387-25282-7 | zbl=1088.11001 }}
 
== External links ==
 
* [http://www.se16.info/js/factor.htm Javascript Prime Factor Calculator using trial division]. Can handle numbers up to about 9&times;10<sup>15</sup>
 
{{number theoretic algorithms}}
 
[[Category:Integer factorization algorithms]]
[[Category:Primality tests]]
[[Category:Division]]
[[Category:Articles with example Python code]]

Latest revision as of 19:57, 5 January 2015


Enable me very first commence by introducing myself. My name is Laraine but you can phone me just about anything you like. Curing individuals has been my career for some time. To hold bees is a point that I'm thoroughly addicted to. Montana is wherever our household is. Look at out the most current information on my web page: http://futuna.csail.mit.edu:8080/mediawiki/User:ShaunteFetherst

My page Nike air max command leather