How do I generate 30 random numbers between 1-9, that all add up to 200 (or some arbitrary N), in C#?
I’m trying to generate a string of digits that can add together to be N.
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
I’m not sure what the statistics are on this but, the issue here is that you don’t want to randomly select a number that makes it impossible to sum N with M number of entries either by overshooting or undershooting. Here’s how I would do it:
I didn’t have a lot of time to test this so apologies if there’s a flaw in my logic somewhere.
EDIT:
I did some testing and everything seems solid. If you want a nice pretty spread it looks like you want something along the lines of
Total = Count * ((UPPER + LOWER) / 2). Although I’m fairly certain that as the difference betweenUPPERandLOWERincreases the more flexible this becomes.