Pseudorandom integer sequence having at least 15 adjacent differences > 36

  • Context: Graduate 
  • Thread starter Thread starter tcma
  • Start date Start date
  • Tags Tags
    Integer Sequence
Click For Summary
SUMMARY

The discussion focuses on generating a pseudorandom integer sequence of 50 integers, where at least 15 adjacent differences exceed 36. An example sequence is provided, demonstrating that it achieves 24 adjacent differences greater than 36. The proposed algorithm involves creating a non-random sequence with the required differences and then applying random swaps to maintain randomness while preserving the difference condition. Additionally, an alternative method suggests selecting 50 random integers and adjusting 15 of them to ensure the required differences.

PREREQUISITES
  • Understanding of pseudorandom number generation
  • Familiarity with integer sequences and their properties
  • Knowledge of algorithms and their implementation
  • Basic programming skills for algorithm implementation
NEXT STEPS
  • Implement the proposed algorithm in a programming language of choice
  • Explore advanced pseudorandom number generation techniques
  • Research the mathematical properties of integer sequences
  • Investigate optimization strategies for maintaining randomness while meeting constraints
USEFUL FOR

Mathematicians, computer scientists, algorithm developers, and anyone interested in generating constrained pseudorandom sequences.

tcma
Messages
1
Reaction score
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
= an integer in the range of [1, 2, 3, ..., 50]

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:
Physics news on Phys.org
I suggest the following:
1. Choose 50 numbers at random.
2.Pick up any 15 of them at random & add 36 to each of them.
This ensures the size of the difference, keeping as much randomness as possible.
 

Similar threads

  • · Replies 3 ·
Replies
3
Views
908
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 7 ·
Replies
7
Views
6K
  • · Replies 16 ·
Replies
16
Views
6K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 18 ·
Replies
18
Views
14K
  • · Replies 6 ·
Replies
6
Views
3K
  • · Replies 1 ·
Replies
1
Views
3K
Replies
2
Views
1K
  • · Replies 6 ·
Replies
6
Views
2K