Talk:Even or odd: Difference between revisions

From Rosetta Code
Content added Content deleted
(added definition of odd/even numbers. ~~~~)
(→‎definition of even & odd numbers: added comments about odd numbers vs. odd integers., also added another definition. ~~~~)
Line 9: Line 9:


== definition of even & odd numbers ==
== definition of even & odd numbers ==
This may be frivolous/trivial, but since the task is to determine if a number is odd or even, a simple definition of an odd/even number could be in order.
This may be frivolous/trivial, but since the task is to determine if an integer is odd or even, a simple definition of an odd/even number could be in order.
<br>The definition (below) defines an ODD NUMBER, and goes further than limiting the definition to an ODD INTEGER:
<br><br>From MathWorld:
<br><br>From MathWorld:
<br><br>An odd number is an integer of the form n=2k+1 where k is an integer.
<br><br>An odd number is an integer of the form n=2k+1 where k is an integer.
<br><br>Integers which are not odd are called even.
<br><br>Integers which are not odd are called even.
<br><br>The above definition has the advantage that it isn't dependent upon its (say, internal binary) representation (or any base, for that matter), although that is one method to determine evenness/oddness. [[User:Gerard Schildberger|Gerard Schildberger]] 00:46, 16 March 2012 (UTC)
<br><br>The above definition has the advantage that it isn't dependent upon its (say, internal binary) representation (or any base, for that matter), although that is one method to determine evenness/oddness.
<br><br>I've also seen the definition that an odd number is an integer, that when divided by two, the absolute value of the remainder is (positive) unity.
<br>An even number ... the remainder is zero.
<br>[[User:Gerard Schildberger|Gerard Schildberger]] 00:46, 16 March 2012 (UTC)

Revision as of 00:59, 16 March 2012

Silly recursive solution

I made this for Java, but maybe it's not that bad in languages with recursion optimizations: <lang java>public static boolean isEven(int i){ if(i == 0) return true; if(i < 0) i = -i; return !isEven(i - 1); }</lang> --Mwn3d 18:47, 1 December 2011 (UTC)

I'd be quite surprised if anything optimized that very much, as it depends on applying an operation to the result of each recursive call which is usually a sign that the compiler won't be able to figure things out. A human could split that into a pair of functions that are the logical inverse of each other (i.e., isEven and notIsEven) which could then admit optimization, but I suspect that sort of analysis isn't done by compilers (on the grounds that it would so rarely lead to real optimizations in practice). –Donal Fellows 09:48, 2 December 2011 (UTC)

definition of even & odd numbers

This may be frivolous/trivial, but since the task is to determine if an integer is odd or even, a simple definition of an odd/even number could be in order.
The definition (below) defines an ODD NUMBER, and goes further than limiting the definition to an ODD INTEGER:

From MathWorld:

An odd number is an integer of the form n=2k+1 where k is an integer.

Integers which are not odd are called even.

The above definition has the advantage that it isn't dependent upon its (say, internal binary) representation (or any base, for that matter), although that is one method to determine evenness/oddness.

I've also seen the definition that an odd number is an integer, that when divided by two, the absolute value of the remainder is (positive) unity.
An even number ... the remainder is zero.
Gerard Schildberger 00:46, 16 March 2012 (UTC)