Pseudorandom integer sequence with at least 15 adjacent diff...

## Primary tabs

# Pseudorandom integer sequence with at least 15 adjacent diff...

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.

Adjacent difference

= absolute value of the difference between two adjacent integers

= |i - i |

| j - j+1|

where j = 0 to 49 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.

- Forums
- Planetary Bugs
- HS/Secondary
- University/Tertiary
- Graduate/Advanced
- Industry/Practice
- Research Topics
- LaTeX help
- Math Comptetitions
- Math History
- Math Humor
- PlanetMath Comments
- PlanetMath System Updates and News
- PlanetMath help
- PlanetMath.ORG
- Strategic Communications Development
- The Math Pub
- Testing messages (ignore)

- Other useful stuff
- Corrections

## Re: Pseudorandom integer sequence with at least 15 adjacent ...

I know it's kind of late to respond to this but here goes anyway. How about this. Lets say that m is nice to n if |m - n| > 36. So, in some random manner, pick an increasing sequence of indices 1 < k[1] < k[2] < ... < k[15] < 51. Then, for i = 1 to 50 do the following

If i is not one of the k's then let s[i] be a random integer

Otherwise randomly pick s[i] so that it is nice to s[i-1].

Would that work?