• Post Reply Bookmark Topic Watch Topic
  • New Topic

Generating random Strings.  RSS feed

 
pawan chopra
Ranch Hand
Posts: 419
jQuery Mac Objective C
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi All,

I want to generate 1800000 random Strings (can be any thing like abc or cba) but this should be unique. Any idea how to achieve this using Java.


 
David Newton
Author
Rancher
Posts: 12617
IntelliJ IDE Ruby
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Well, you're not going to get 1.8 million unique three-lowercase-character strings, that's for sure.

There are a lot of ways to do this; here's one: build random strings and put them into a set until its length is 1800000.
 
Max Rahder
Ranch Hand
Posts: 177
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
3**26 -- the number of 3 letter combinations -- is bigger than 1.8 million.

Is being "random" what's important? Or do they just need to be unique? If you need 1.8 million unique strings then you could simply use the values "1" through "1800000". Obviously, those won't be random. If you want characters rather than numbers, look into BigInteger using a radix of 26, or code something yourself. You could also look into class java.util.UUID, although I doubt those are designed to be random, per se.
 
Rob Spoor
Sheriff
Posts: 21131
87
Chrome Eclipse IDE Java Windows
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Max Rahder wrote:3**26 -- the number of 3 letter combinations -- is bigger than 1.8 million.

Yes it is. But the number of distinct three letter combinations is not 3^26 - it's 26^3 (or 17576):
- 26 possibilities for the first letter
- another 26 for the second
- another 26 for the third

You would get 3^26 with 26 "fields" each with 3 options.
 
Max Rahder
Ranch Hand
Posts: 177
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Rob Prime wrote:
Max Rahder wrote:3**26 -- the number of 3 letter combinations -- is bigger than 1.8 million.

Yes it is. But the number of distinct three letter combinations is not 3^26 - it's 26^3 (or 17576):
- 26 possibilities for the first letter
- another 26 for the second
- another 26 for the third

You would get 3^26 with 26 "fields" each with 3 options.


Duh, whoops, yeah, you're right of course! Got my "powers of" mixed up!
 
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!