Pseudorandom integer sequence having at least 15 adjacent differences > 36

May 2010
3
0
The requirement is to find an pseudorandom integer sequence i0, i1, i2, i3, ... , i48, i49 so that there are at least 15 adjacent differences which are greater than 36.
Code:
Adjacent difference = absolute value of the difference between two adjacent integers
= |i  - i   |  where j = 0 to 49 
  | j -  j+1|
and
 i  =  an integer in the range of [1, 2, 3, ..., 50]
  j
e.g.
For this integer sequence (very poor in randomness)
1 39 2 40 3 41 4 42 5 43 6 44 7 45 8 46 9 47 10 48 11 49 12 50 13 26 14 27 15 28 16 29 17 30 18 31 19 32 20 33 21 34 22 35 23 36 24 37 25 38


i0 = 1
i1 = 39
i2 = 2
i3 = 40
i4 = 3
...
i47 = 37
i48 = 25
i49 = 38

Adjacent difference
|i0 - i1| = |1 - 39| = 38
|i1 - i2| = |39 - 2| = 37
|i2 - i3| = |2 - 40| = 38
|i3 - i4| = |40 - 3| = 37
...
|i23 - i24| = |50 - 13| = 37
|i24 - i25| = |13 - 26| = 13
...
|i46 - i47| = |24 - 37| = 13
|i47 - i48| = |37 - 25| = 12
|i48 - i49| = |25 - 38| = 13

There are 24 adjacent differences which are greater than 36.
Is there an algorithm to find an pseudorandom integer sequence which meet the requirement?
One algorithm I can think of is:
1. Create a not-random integer sequence which has at least 15 adjacent differences which are greater than 36.
e.g. the above integer sequence alternates between a small and large integer
2. Randomlly select two odd-indexed integer.
If swapping them still meet the requirement, then swap them
3. Randomlly select two even-indexed integer.
If swapping them still meet the requirement, then swap them
4. Repeat steps 2 and 3 many times

I will write a computer program to implement this.
Please comment or suggest a better algorithm.
 
Last edited:

CaptainBlack

MHF Hall of Fame
Nov 2005
14,972
5,271
someplace
The requirement is to find an pseudorandom integer sequence i0, i1, i2, i3, ... , i48, i49 so that there are at least 15 adjacent differences which are greater than 36.
Code:
Adjacent difference = absolute value of the difference between two adjacent integers
= |i  - i   |  where j = 0 to 49 
  | j -  j+1|
and
 i  =  an integer in the range of [1, 2, 3, ..., 50]
  j
e.g.
For this integer sequence (very poor in randomness)
1 39 2 40 3 41 4 42 5 43 6 44 7 45 8 46 9 47 10 48 11 49 12 50 13 26 14 27 15 28 16 29 17 30 18 31 19 32 20 33 21 34 22 35 23 36 24 37 25 38


i0 = 1
i1 = 39
i2 = 2
i3 = 40
i4 = 3
...
i47 = 37
i48 = 25
i49 = 38

Adjacent difference
|i0 - i1| = |1 - 39| = 38
|i1 - i2| = |39 - 2| = 37
|i2 - i3| = |2 - 40| = 38
|i3 - i4| = |40 - 3| = 37
...
|i23 - i24| = |50 - 13| = 37
|i24 - i25| = |13 - 26| = 13
...
|i46 - i47| = |24 - 37| = 13
|i47 - i48| = |37 - 25| = 12
|i48 - i49| = |25 - 38| = 13

There are 24 adjacent differences which are greater than 36.
Is there an algorithm to find an pseudorandom integer sequence which meet the requirement?
One algorithm I can think of is:
1. Create a not-random integer sequence which has at least 15 adjacent differences which are greater than 36.
e.g. the above integer sequence alternates between a small and large integer
2. Randomlly select two odd-indexed integer.
If swapping them still meet the requirement, then swap them
3. Randomlly select two even-indexed integer.
If swapping them still meet the requirement, then swap them
4. Repeat steps 2 and 3 many times

I will write a computer program to implement this.
Please comment or suggest a better algorithm.
What is the range that the integers are to take?

What do you want them for (so we can determine what properties this sequence should really have).

CB
 
May 2010
3
0
What is the range that the integers are to take?

What do you want them for (so we can determine what properties this sequence should really have).

CB
The range of the integers are from 1 to 50 inclusive.
My original post gives one integer sequence (though not random) which I think of.
They corresponds to some frequencies (around 920MHz) so that the adjacent difference represent the interference between two adjacent frequencies. The larger the adjacent difference, the smaller the interference will be.
The goal is to get a large total number of the adjacent differences and a large magnitude of adjacent difference.
 
May 2010
3
0
Is there a method to calculate the theoretical (mathematical) limit of the criteria for the integer sequence of the range [1, 50]?
e.g.
1. If the adjacent difference is set to 24, what is the theoretical minimum number of adjacent differences that can be achieved?
2. If the minimum number of adjacent difference is set to 32, what is the theoretical adjacent difference that can be achieved?
I do not want to my software to achieve something that is impossible theoretically.