Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > C++ > Programming question

Reply
Thread Tools

Programming question

 
 
Pat
Guest
Posts: n/a
 
      08-24-2004
I am a C++ beginner, please give me some suggestion on the following
question.

Given n balls. The probability pi is the chance to choose ball i. Sum of pi
is 1.

I want to run 10000 independent trials in selecting the ball, and simulate
the expected number of each ball to be choosen.

I have no idea how to implement the probability drawing step. Could you give
me some hints?
Thanks.

Pat



 
Reply With Quote
 
 
 
 
Daniel T.
Guest
Posts: n/a
 
      08-24-2004
In article <412b7e92$(E-Mail Removed)-cable.com>, "Pat" <(E-Mail Removed)> wrote:

> I am a C++ beginner, please give me some suggestion on the following
> question.
>
> Given n balls. The probability pi is the chance to choose ball i. Sum of pi
> is 1.
>
> I want to run 10000 independent trials in selecting the ball, and simulate
> the expected number of each ball to be choosen.
>
> I have no idea how to implement the probability drawing step. Could you give
> me some hints?


Look up how to use the 'rand()' function.
 
Reply With Quote
 
 
 
 
Victor Bazarov
Guest
Posts: n/a
 
      08-24-2004
Pat wrote:
> I am a C++ beginner, please give me some suggestion on the following
> question.
>
> Given n balls. The probability pi is the chance to choose ball i. Sum of pi
> is 1.
>
> I want to run 10000 independent trials in selecting the ball, and simulate
> the expected number of each ball to be choosen.
>
> I have no idea how to implement the probability drawing step. Could you give
> me some hints?


This is not really a C++ language question, and as such it doesn't belong
here, in all honesty. Please ask generic programming questions in
comp.programming and generic mathematics questions in sci.math.

Some hints: usually simulating with a computer something that occurs at
random requires the use of pseudo-random number generator. There is one
in the Standard C++ library. Its interface consists of two functions
named 'rand' and 'srand'. Since computers are pretty much deterministic
devices when it comes to programmed behaviour, simulating real-time random
situations with computers is tricky and requires some assumptions to be
made. You need to figure out what "10000 independent trials" really means
because if it's all in the same program, it's not really _independent_.

Victor
 
Reply With Quote
 
Stuart McGarrity
Guest
Posts: n/a
 
      08-24-2004
It would probably be quicker to design the algorithm in something like
MATLAB first (in this case 10 min) then look at implementing it in C++ once
you know what your doing if you need to.

One algorithm is:

% Generate probabilities
n=100; % Number of balls
trials=100000; % Number of independant trials
pi=rand(n,1); % n different probabilities of a ball being choosen
pi=pi/sum(pi); % Ensure sum is 1
cumpi=cumsum(pi); % Cumulative sum of probabilities

%% Simulate
count=zeros(n,1); % Set all ball counts to 0
for i = 1:trials
pick=rand; % Pick a number between 0 and 1
choosen=sum(cumpi<pick)+1; % Find which ball this corresponds too
count(choosen)=count(choosen)+1; % Count ball
end

Stuart

"Pat" <(E-Mail Removed)> wrote in message news:412b7e92$(E-Mail Removed)-cable.com...
> I am a C++ beginner, please give me some suggestion on the following
> question.
>
> Given n balls. The probability pi is the chance to choose ball i. Sum of

pi
> is 1.
>
> I want to run 10000 independent trials in selecting the ball, and simulate
> the expected number of each ball to be choosen.
>
> I have no idea how to implement the probability drawing step. Could you

give
> me some hints?
> Thanks.
>
> Pat
>
>
>



 
Reply With Quote
 
Kai-Uwe Bux
Guest
Posts: n/a
 
      08-24-2004
Pat wrote:

> I am a C++ beginner, please give me some suggestion on the following
> question.
>
> Given n balls. The probability pi is the chance to choose ball i. Sum of
> pi is 1.
>
> I want to run 10000 independent trials in selecting the ball, and simulate
> the expected number of each ball to be choosen.
>
> I have no idea how to implement the probability drawing step. Could you
> give me some hints?
> Thanks.
>
> Pat


a) This is off-topic here.
b) Google for "J.A. Walker's alias method" or look up

D.E. Knuth
The Art of Computer Programming Vol 2,
page 120--121

for a description.


Best

Kai-Uwe Bux
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
C (functional programming) VS C++ (object oriented programming) Joe Mayo C Programming 168 10-22-2007 01:00 AM
Can Your Programming Language Do This? Joel on functional programming and briefly on anonymous functions! Casey Hawthorne Python 4 08-04-2006 05:23 AM
Wireless PEAP/MSCHAPV2 client programming question Jim Howard Wireless Networking 6 07-02-2005 11:53 AM
systems programming versus application programming Matt Java 35 07-22-2004 08:10 AM
VB6/VB.Net Programming Question - what am i doing wrong? Salisha Khan ASP .Net 1 08-01-2003 01:55 PM



Advertisments