thanks shvil, I really didn't want to store an array if it wasn't necessary, and I'm not sure whether this solution will work equally well in android, but for anyone who might stumble upon this, I asked the same question at stackoverflow, and answered my own question when I realized Arsonide had linked to the code he used for the perlin noise plugin.
here's a link to the stackoverflow post
and here's a copy of the solution reply I posted:
[quote:2gxifrm0]Thanks for all the replies,
and also, for anyone who might happen upon this asking a similar question, I found a solution that isn't exactly what I asked for, but fits the bill for my purposes.
It is a perlin noise class that can be found here.
I'm not sure how computationally complex this is relative to a conventional random number generator, which is a concern, since one of the planned platforms is Android. Also, perlin noise isn't the same thing as pseudorandomness, but from what I can tell, a high octave and/or frequency value should provide suitable randomness for non-cryptographic purposes, where the statistical level of true randomness isn't as important as the mere appearance of randomness.
This solution allows seeding, and also allows sampling a random set from any point, in other words, random access randomness.
here's an example set of regular c++ randomness (rand%200) on the left column for comparison, and perlin noise (with the equivalent of %200) on the right:
91 , 100
48 , 97
5 , 90
93 , 76
197 , 100
97 , 114
132 , 46
190 , 67
118 , 103
78 , 96
143 , 110
187 , 108
139 , 79
69 , 58
156 , 81
123 , 128
84 , 98
15 , 105
178 , 117
10 , 82
13 , 110
182 , 56
10 , 96
144 , 64
133 , 105[/code:2gxifrm0]
both were seeded to 0
the parameters for the perlin noise were
[code:2gxifrm0]
octaves = 8
amplitude = 100
frequency = 9999
width/height = 10000,100[/code:2gxifrm0]
the sequential sampling order for the perlin noise was simply
[code:2gxifrm0] for (int i=0;i<24;i++)
floor(Get(i,i)+100);
//amplitude 100 generates noise between -100 and 100,
//so adding 100 generates between 0 and 200[/code:2gxifrm0]