Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Odd and Even equation

  1. Mar 15, 2007 #1
    I have been wondering were to put this question but since it is related to algebra, i think i'll post it here.

    I was playing with numbers and suddenly i came up with the idea of wanting to make a equation f(x) where all x odd number domain will result of range 1, and all even number domain will result of range 0.

    if x = even, f(x) = 0
    if x = odd, f(x) = 1

    x can only be whole integers {...,-2,-1,0,1,2...}
    y can only be 0 or 1

    I want only one equation that give me such result. Please lend me a hand. I have been cracking my head all day and i always get it wrong.

  2. jcsd
  3. Mar 16, 2007 #2
    What about
  4. Mar 16, 2007 #3
    Great! Thanks! That is one way to do it. I wonder if you can make it into step functions? Pretty plesase o:)
  5. Mar 16, 2007 #4

    matt grime

    User Avatar
    Science Advisor
    Homework Helper

    Why do you want that?
  6. Mar 16, 2007 #5
    How about

  7. Mar 16, 2007 #6
    Well, there was this problem in my c++ class that include odd and even numbers. The problem begins that you pick a number and if the number is
    -Odd then 3x+1
    -Even then x/2

    So suppose that i pick 5, then since it is odd it will start:
    5 -> 16 -> 8 -> 4 -> 2 -> 1 -> 4 -> 2 -> ....
    When the number becomes odd, the odd condition is applied. When the number becomes even, the even condition is applied. However, there is also a loop in there. As you can see that from 1 it goes back to 4. The original problem was how to make a loop that doesn't go forever and it was by adding the condition that when x = 1 stop or while x is different to 1 continue to loop.

    However, the problem was extended to that supposing you pick a very large number. And because of the magnitude of the number, there could be a intermediate loop before reaching x = 1 which makes the program loop for ever even if you have the x = 1 condition. Is there any way to find that there is a intermediate loop inside and stop it? Then the professor explain that it is a little game that mathematicians like to play with and they don't have an answer. But i decided to play a bit as well.

    I begun to play with real equations and real numbers and i got as far as to be able to write a difference equation which i learned not very long ago and it serves some of my basic purposes to be able to determine the intermediate loop.

    That is for programing, right? To be specific, Matlab right? But I am actually trying to get is an equation.
    Last edited: Mar 16, 2007
  8. Mar 16, 2007 #7
    mod(x,2) is a function like any other function. It's perfectly well known by mathematicians.
  9. Mar 16, 2007 #8
    :surprised I didn't know that.

    Well, thanks then. Learned something new. :biggrin:

    But what are those kind of equations called?

    Edit: Is that parametric equations?
  10. Mar 16, 2007 #9
    I don't think there's any way to tell in advance if this loop terminates. There may be a proof to that extent.
  11. Mar 16, 2007 #10

    matt grime

    User Avatar
    Science Advisor
    Homework Helper

    It is a very famous and old problem (the 3n+1 problem). It is not known if the sequence terminates in 1 or not for all starting values. In fact Conway (I think) has shown there are variations where it is an undecidable problem.

    Equations like sin are going to be useless for C++ (only if you have a symbolic computer library will you be OK to use pi - remember to evaluate something like sin the computer will only use approximations, and even then you have to load math.h in C, say).

    I seem to remember that

    if(x % 2 ==1) then
    (do something on odd numbers
    do something else on even numbers (though I don't promise to have my precedence of operators correct)

    would do. Every computer language has a modulo function, and I think it is % in C, C++, python, perl et al.

    This is modular arithmetic (aka clock arithmetic).
    Last edited: Mar 16, 2007
  12. Mar 16, 2007 #11
    True, that is why it will require change to the code but i want to check it analytically first.Well it doesn't hurt to play around with it. After all i do learn new things too!

    Yeah, i heard it was famous but since it is new for me i would like to play it a bit longer until i get bored about it. We already did the past of the modulus and all but i still want to try to see if i can find the loops and if i can i learn even more! It is true that programing languages make approximations that is why i am doing them by hand as well. That is why i wrote the difference equation.
    Last edited: Mar 16, 2007
  13. Mar 16, 2007 #12
    Well, remember us if you succeed and get the Fields medal for math.
  14. Mar 16, 2007 #13

    matt grime

    User Avatar
    Science Advisor
    Homework Helper

    It is always difficult to decide if one should encourage work like this, or offer strong cautions. I think I would have to edge towards the latter: this problem is very old, very well studied, and no solution has been found. Similar examples are known to be undecidable. It is not something you should start with - I'm sure there are better things to learn from that you can actually make progress with (even if it is already known to someone else).
  15. Mar 16, 2007 #14
    I don't think that i am that good yet but if i get it by chance, it would be based and thanks to all the pieces of information that you guys provided me.

    matt grime. I understand what you mean. If it is something that i mathematicians haven't been able to solve, there is a very little change that i would - especially with my limited knowledge in mathematics. But who, knows by the smallest change there still a possibility.

    Or even if i am not able to solve it at all, i would be able to learn new things on the way. Things that i never thought there were and things i never thought i could use it that way.

    I mean with the helps of you guys i was able to get the a function where any odd and even integer number will give me only 0 or 1. I learned a new notation (which i haven't been the name of it yet). I even applied difference equations which i hated so much a few days ago because it is too much trouble to get the results analytically.

    Besides i really feels encouraging and challenging to do things that sot everyone can solve.
    Last edited: Mar 16, 2007
  16. Mar 16, 2007 #15

    matt grime

    User Avatar
    Science Advisor
    Homework Helper

    Doing something hard (impossible even) can be useful, but just as long as you're prepared to accept in advance that, whatever else you may gain, progress towards a solution is unlikely, so don't be disappointed.
  17. Mar 16, 2007 #16
    Well, i have been able to make so progress. I am using matlab to graph the difference equations and i have been able to identify a few patterns.

    In the case of:
    Odd then 3x +1
    Even then x/2

    -Intermediate loops most likely happen when x is close to 0
    -in positive numbers we know that intermediate loop will occur once x reach 1. But in negative integers there are more than one possible -x close to 0 which would lead to intermediate loops (try different -yk)
    -Most integer numbers inputed (regardless of being positive or negative) would most likely go close to 0 as the process is carried on.

    Without the graph, there are a few more patterns you can see by analyzing the odd and even conditions.
    -If odd, then (3x+1) will always transform x to even.
    -If even, then (x/2) might or might not transform x to odd.
    -If negative odd, then (3x+1) will lead first father away from 0 then +1 unit closer to 0.
    -If positive odd, then (3x+1) will always lead father away from 0.
    -If positive or negative even, then (x/2) will lead closer to 0.

    Big numbers can possibly have more than one whole division by 2 which will most likely lead the numbers towards 0.
    Any odd number will always convert it to even, therefore, most likely be reduced again.

    There are 3 cases where there will be loops which leads to no end.
    1-Intermediate loops inside any y interval
    2-Continuous increments towards positive infinity.
    3-Continuous decrements towards negative infinity.

    I found case number 2 and 3 by graphing large positive or negative numbers in matlab. I am not sure if it was overflow or if it is going towards large infinity then goes back close to 0 (unless i can do it analytically).

    Here is my matlab script file so that you can analyze the problem as well if you have the software.

    Edit: Intermediate loops is my short way to call the loops that repeat the same values

    Attached Files:

    • cycle.m
      File size:
      650 bytes
    Last edited: Mar 16, 2007
  18. Mar 16, 2007 #17

    matt grime

    User Avatar
    Science Advisor
    Homework Helper

    That doesn't make sense unless you bother to define what an 'intermediate' loop is.
  19. Mar 16, 2007 #18
    I am sorry about it. I mean it like it loops with always repeat the same values.

    For example:

    1 -> 4 -> 2 -> 1 -> 4 -> 2 -> 1 -> 4 -> 2 -> 1 -> ......
  20. Mar 16, 2007 #19

    matt grime

    User Avatar
    Science Advisor
    Homework Helper

    There are no known non-trivial (i.e. without a 1 in them) intermediate loops. That's the whole point of the problem.

    You have found out what the proper statement of the 'hard' conjecture is, right?

    Given the operation above, it is conjectured that every possible starting (positive at least) integer reaches 1 eventually. This is a *very hard* conjecture, and has been extensively investigated, and verified for many many starting values. There are similar problems which are known to be undecidable (do you know what the formal definition of undecidable is?).
    Last edited: Mar 16, 2007
  21. Mar 16, 2007 #20
    It is somehow related with randomness. I know that 1 as part of the intermediate loop because i picked the number but if it where random, there is not a general rule that can make it work the way it does, right? Is that what you mean by undecidable?

    You can always tell me your definition of undecidable so that i make sure i understand.

    True that 1 won't define everything but this is a clue for the many possible patterns in the infinite set of numbers. Besides, even though the problem is undecidable, this one is bound to a few restrictions which is odd, even and the two equations (3x+1) and (x/2).

    By detailing out every possible pattern is one way to begin a research. Unless you are telling me that i should tackle it without any aims or i should be a genius that is able to see through it instantly.

    Edit: Although the statements are hard conjectures they are the ones that i can use at the moment so that i can progress. I am putting them in here in case anyone is interested in doing the problem too.

    Anything else, If the statements are wrong then tell me so that i can correct it.
    Last edited: Mar 16, 2007
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook