[Webinar] Streamline your web hosting managementRegister Today

x
?
Solved

C# dividing a number into 24 random pieces/shares

Posted on 2013-05-12
4
Medium Priority
?
743 Views
Last Modified: 2013-05-12
Hey guys,

I'm trying to figure out the easiest way to divide a number into 24 parts, but completely random.

For example, if the number is 15,500 how would I be able to divide it up randomly into 24 parts like this:

1. 253
2. 442
3. 101
4. 788
5. 2,232
etc....

The sum of these 24 random pieces should = 15,500.

Any thoughts?
0
Comment
Question by:mcainc
  • 2
  • 2
4 Comments
 
LVL 42

Expert Comment

by:Meir Rivkin
ID: 39159309
should they all be different?
0
 

Author Comment

by:mcainc
ID: 39159314
yeah, all 24 pieces should be different random numbers that all add up to the desired larger number
0
 
LVL 42

Accepted Solution

by:
Meir Rivkin earned 2000 total points
ID: 39159322
here it is:
        static Random rand = new Random();
        public static IEnumerable<int> Split(Int32 val, int parts)
        {
            int left = val;
            for (int i = 0; i < parts - 1; i++)
            {
                var curr = rand.Next(1, left / parts);
                yield return curr;
                left -= curr;
            }
            yield return left;
        }


        static void Main(string[] args)
        {
            Int32 val = 15500;
            var res = Split(val, 24);
            int sum = 0;
            foreach (var item in res)
            {
                Console.WriteLine(item);
                sum += item;
            }
            var match = (sum == val);

        }

Open in new window

0
 

Author Closing Comment

by:mcainc
ID: 39159415
nice!!! thanks
0

Featured Post

The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction Although it is an old technology, serial ports are still being used by many hardware manufacturers. If you develop applications in C#, Microsoft .NET framework has SerialPort class to communicate with the serial ports.  I needed to…
This article is for Object-Oriented Programming (OOP) beginners. An Interface contains declarations of events, indexers, methods and/or properties. Any class which implements the Interface should provide the concrete implementation for each Inter…
How to fix display issue, screen flickering issue when I plug in power cord to the machine. Before I start explaining the solution lets check out once the issue how it looks like after I connect the power cord. most of you also have faced this…
Is your organization moving toward a cloud and mobile-first environment? In this transition, your IT department will encounter many challenges, such as navigating how to: Deploy new applications and services to a growing team Accommodate employee…
Suggested Courses
Course of the Month10 days, 12 hours left to enroll

612 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question