Dear Mahaboob:
Many people have answered this question but I will take this route.

First of all you only have call srandom once in you program. Best place is when you are going to load the object.

I defined 2 macros

#define RANDOM_SEED() srandom(time(NULL))
#define RANDOM_INT(__MIN__, __MAX__) ((__MIN__) + random() % ((__MAX__ +1) - (__MIN__)))

#define ARRAYSIZE 15

Now I assume that you already called RANDOM_SEDD previously.
Now create an array with your range of your numbers. In your case 1 to 16.

int RandArray[ARRAYSIZE];

for (int i = 0; i < ARRAYSIZE; i++)
{
        RandArray[i] = i + 1; // choose your own range
}

Now shuffle them

for (int i = 0; i < ARRAYSIZE; i++)
{
        int RandomNumber = RANDOM_INT(0, ARRAYSIZE);
      int temp = RandArray[RandomNumber];
      RandArray[RandomNumber] = RandArray[i];
      RandArray[i] = temp
}

:-)
Agha

On Aug 5, 2009, at 3:44 AM, Mahaboob wrote:

I need to produce 15 random numbers between 1 to 16 without repeating any
number. I used the code like

   int i,j;
   for(i=0;i<15;i++){
       j =random() % 15 +1;
       NSLog(@"No: %d => %d \n",i,j);
       srandom(time(NULL)+i);
   }
But some numbers are repeating.
How can I do it without repeating the numbers?

Thanks in advance
Mahaboob


_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/agha.khan%40me.com

This email sent to agha.k...@me.com

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to