## How to set constrain on random numbers in c

How to set constrain on random numbers in c
# 1
01-11-2008
How to set constrain on random numbers in c

Hi,

I am currently trying to generate multiple random numbers in C for different variable:-

die1=1+(rand()%5);
die2=1+(rand()%5);
die3=1+(rand()%5);
die4=1+(rand()%5);

But I need to contrain the total of die1, die2,die3 and die4 to be 5 as well. If i insert die1+die2+die3+die4=5, i do not think it will constrain the distribution.

-Jason
 ahjiefreak View Public Profile for ahjiefreak Find all posts by ahjiefreak
# 2
01-11-2008
Your four variables are integers, each set to 1 + some integer. Three of them must stay at 1 and the fourth one can be two. Pick a number between 1 and 4 and increment only one variable based on that. You pick a 3, die3=2 and the rest stay at 1.
 Perderabo View Public Profile for Perderabo Find all posts by Perderabo
# 3
01-11-2008
Yeah. I understood the concept. But do we have ways to automate them to generate all sorts of combination in this constrain?

I tried to find from internet related to these cases; they arent related. Most of them are just giving random numbers generation.

As I mentioned previously, if i constrain the total value after the random number is generated for these variables, it wont work because it is not dependent. Unless I can slot something in between the rand?

Thanks.

-Jason
 ahjiefreak View Public Profile for ahjiefreak Find all posts by ahjiefreak
# 4
01-11-2008
If you had, say, 100, to distribute 5 into 5 variables: You pick a number from 1 to 100, let's say you get 20. The first variable gets the 20. Now 100 - 20 = 80 is left. So pick a number between 1 and 80. You stop when you get to only 1 variable and it gets the remainder. Or if the amount left reaches zero, you stop early and the rest of the variable must be zero.
 Perderabo View Public Profile for Perderabo Find all posts by Perderabo
# 5
01-11-2008
Hi,

I get the idea now. Thanks. But i just have a thought if that is the case, would it be very bias to have the top variables always get the most of the values rather than the bottom ones?

What I expected at the first place is to have fair distribution of cake among the variables.

let say i have only consider 3 possbile values, (0,1 and 2). And have 5 variables. If I did consider the below idea, in all the cases, the second of third variables always get the most rather than the fourth and fifth variable.

Rgrds,
Jason
 ahjiefreak View Public Profile for ahjiefreak Find all posts by ahjiefreak
# 6
01-11-2008
I can't help you there since your test case is so very constrained. Except to say that only a very few possible outcomes are going to satify you. Enumerate them and pick one.

Getting back to my test case, you could preallocate 10 to each variable and then distibute the remaining 50 as I indicated. Or you could distribute the numbers one at a time. Cycle though each variable and generate a 0 or 1. Add that to each variable and subtract it from the mass to be distributed.
 Perderabo View Public Profile for Perderabo Find all posts by Perderabo
# 7
01-11-2008
Quote:
Originally Posted by Perderabo
If you had, say, 100, to distribute 5 into 5 variables: You pick a number from 1 to 100, let's say you get 20. The first variable gets the 20. Now 100 - 20 = 80 is left. So pick a number between 1 and 80. You stop when you get to only 1 variable and it gets the remainder. Or if the amount left reaches zero, you stop early and the rest of the variable must be zero.
jason Perderabo idea is cool. but if u want ot " distribute piece of cake evenly" then you can write an additional code

n=1+rand()%4
switch(n)
{
case 1:
// use perderabo idea starting with die1 - die4

case 2:

// use perderabo idea starting with die2 - die4,die1 in circular way

case 3:
//and so on...........
}

i know its not a very pretty solution but considering your unique constraints this is the best solution i got
 vikashtulsiyan View Public Profile for vikashtulsiyan Find all posts by vikashtulsiyan

## Random numbers

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! Write a shell script that will take the sum of two random number? Ex: Random n1 +Random n2 = result i tries to write it but i had some dufficulties ...

## Generate random numbers in script

i want to generate a random number through a script, and even if anyone reads the script, they wont be able to figure out what the random number is. only the person who setup the script would know it. something like this could work: random the full thread is here: ...

## unique random numbers awk

Hi, I have a small piece of awk code (see below) that generates random numbers. gawk -F"," 'BEGIN { srand(); for (i = 1; i <= 30; i++) printf("%s AM329_%04d\n",\$0,int(36 * rand())+1) }' OFS=, AM329_hole_names.csv The code works fine and generates alphanumeric numbers like AM329_0001,...

## Random numbers in parent/child?

Hi I'm trying to generate random numbers both in parent process and the child process. But I get the same random number in both processes. Why doesn't it generate different numbers altough I seed random number generator? Here's my code: #include <stdio.h> #include <unistd.h> #include...

## Generating random numbers

Hi, I am having trouble with generating random numbers. can this be done with awk? So I have a file that looks like this: 23 30 24 40 26 34 So column1 is start and column2 is end. I want to generate 3 random #'s between start and stop: So the output will look like this: ...

## Random Numbers - Perl

Hi Guys I have a script to find Ranomd numbers. But I want to make the file to produce more random. Could u guys help me plz. In this Script I have the code that generates random in for loop and the range I have specified in my %chromlength input and out put will be like this chrno start end...

## seperating records with numbers from a set of numbers

I have two files one (numbers file)contains the numbers(approximately 30000) and the other file(record file) contains the records(approximately 40000)which may or may not contain the numbers from that file. I want to seperate the records which has the field 1=(any of the number from numbers...

## Random numbers from 0 to 1000

Hello All, I want to make a simple script which generate random number from 0 to 1000. and simply display it. Plz HELP!!!!!! Regards, Waqas Ahmed

## Random numbers without repetition

Is anyone know some scripts to generate random number without repetition using bash; for example generate 10 different random numbers. Thanks