usingMaths.com
Demonstrating and showing pupils and students one application of Mathematics.



Versions on Selection Algorithm in C#




loading...
Algorithm by: Educator usingMaths

Our Mathematical Selection code in C#.


Mathematical Selection Class File:


using System.Collections.Generic;

namespace Miscellaneous_CS
{
class Selection
    {
        public string[] words;
        public int r; // min length of word
        protected List<string[]> complete_group;
        private int i;

        public Selection()
        {
        }

        public List<string[]> groupSelection(string[] candidates, int size) {
            words = candidates;
            r = size;
            complete_group = new List<string[]>();
            i = 0;
            recursiveFillUp(new List<string>());

            return complete_group;
        }

        // pick elements recursively
        protected void recursiveFillUp(List<string> temp) {
            List<string>[] picked_elements = new List<string>[words.Length];
            int j = i;
            while (j < words.Length) {
                picked_elements[j] = new List<string>();
                picked_elements[j].AddRange(temp);
                picked_elements[j].Add(words[j]);
                // recoil factor
                if (i >= words.Length) {
                    i = j;
                }
                // satisfied yet?
                if (picked_elements[j].Count == r) {
                    complete_group.Add(picked_elements[j].ToArray());
                }
                else if (picked_elements[j].Count < r) {
                    recursiveFillUp(picked_elements[j]);
                }
                j++;
            }
            if (picked_elements[--j] != null && picked_elements[j].Count == r) {
                i++; // keep recoil factor straightened out
            }
        }
    }
}


Main Class:


using System;
using System.Collections.Generic;
using System.Linq;

namespace Miscellaneous_CS
{
class Program
    {
        static void Main(string[] args)
        {
            string[] goods = { "0""1""2""3""4""5""6""7""8""9" };
            Selection pick = new Selection();
            List<string[]> result = pick.groupSelection(goods, 3);
            // print choices and operation
            Console.Write("[ ");
            foreach (string choice in pick.words)
            {
                Console.Write(choice + "; ");
            }
            Console.WriteLine("] selection " + pick.r + ":" + Environment.NewLine);
            // print out selections nicely
            int i = 0;
            foreach (string[] set in result)
            {
                Console.Write(++i + ": ");
                foreach (string member in set)
                {
                    Console.Write(member + "; ");
                }
                Console.WriteLine();
            }
            Console.WriteLine(Environment.NewLine + "Number of ways is " + result.Count + ".");
        }
    }
}


Try it out!

Ownership (1) Simplicity (0.0) Elegance (0.0)
loading...
colormap #003366 #336699 #3366CC #003399 #000099 #0000CC #000066 #006666 #006699 #0099CC #0066CC #0033CC #0000FF #3333FF #333399 #669999 #009999 #33CCCC #00CCFF #0099FF #0066FF #3366FF #3333CC #666699 #339966 #00CC99 #00FFCC #00FFFF #33CCFF #3399FF #6699FF #6666FF #6600FF #6600CC #339933 #00CC66 #00FF99 #66FFCC #66FFFF #66CCFF #99CCFF #9999FF #9966FF #9933FF #9900FF #006600 #00CC00 #00FF00 #66FF99 #99FFCC #CCFFFF #CCCCFF #CC99FF #CC66FF #CC33FF #CC00FF #9900CC #003300 #009933 #33CC33 #66FF66 #99FF99 #CCFFCC #FFFFFF #FFCCFF #FF99FF #FF66FF #FF00FF #CC00CC #660066 #336600 #009900 #66FF33 #99FF66 #CCFF99 #FFFFCC #FFCCCC #FF99CC #FF66CC #FF33CC #CC0099 #993399 #333300 #669900 #99FF33 #CCFF66 #FFFF99 #FFCC99 #FF9999 #FF6699 #FF3399 #CC3399 #990099 #666633 #99CC00 #CCFF33 #FFFF66 #FFCC66 #FF9966 #FF6666 #FF0066 #CC6699 #993366 #999966 #CCCC00 #FFFF00 #FFCC00 #FF9933 #FF6600 #FF5050 #CC0066 #660033 #996633 #CC9900 #FF9900 #CC6600 #FF3300 #FF0000 #CC0000 #990033 #663300 #996600 #CC3300 #993300 #990000 #800000 #993333
Drop Your Version!
Login Please!

colormap #003366 #336699 #3366CC #003399 #000099 #0000CC #000066 #006666 #006699 #0099CC #0066CC #0033CC #0000FF #3333FF #333399 #669999 #009999 #33CCCC #00CCFF #0099FF #0066FF #3366FF #3333CC #666699 #339966 #00CC99 #00FFCC #00FFFF #33CCFF #3399FF #6699FF #6666FF #6600FF #6600CC #339933 #00CC66 #00FF99 #66FFCC #66FFFF #66CCFF #99CCFF #9999FF #9966FF #9933FF #9900FF #006600 #00CC00 #00FF00 #66FF99 #99FFCC #CCFFFF #CCCCFF #CC99FF #CC66FF #CC33FF #CC00FF #9900CC #003300 #009933 #33CC33 #66FF66 #99FF99 #CCFFCC #FFFFFF #FFCCFF #FF99FF #FF66FF #FF00FF #CC00CC #660066 #336600 #009900 #66FF33 #99FF66 #CCFF99 #FFFFCC #FFCCCC #FF99CC #FF66CC #FF33CC #CC0099 #993399 #333300 #669900 #99FF33 #CCFF66 #FFFF99 #FFCC99 #FF9999 #FF6699 #FF3399 #CC3399 #990099 #666633 #99CC00 #CCFF33 #FFFF66 #FFCC66 #FF9966 #FF6666 #FF0066 #CC6699 #993366 #999966 #CCCC00 #FFFF00 #FFCC00 #FF9933 #FF6600 #FF5050 #CC0066 #660033 #996633 #CC9900 #FF9900 #CC6600 #FF3300 #FF0000 #CC0000 #990033 #663300 #996600 #CC3300 #993300 #990000 #800000 #993333
Remark!
Login Please!

colormap #003366 #336699 #3366CC #003399 #000099 #0000CC #000066 #006666 #006699 #0099CC #0066CC #0033CC #0000FF #3333FF #333399 #669999 #009999 #33CCCC #00CCFF #0099FF #0066FF #3366FF #3333CC #666699 #339966 #00CC99 #00FFCC #00FFFF #33CCFF #3399FF #6699FF #6666FF #6600FF #6600CC #339933 #00CC66 #00FF99 #66FFCC #66FFFF #66CCFF #99CCFF #9999FF #9966FF #9933FF #9900FF #006600 #00CC00 #00FF00 #66FF99 #99FFCC #CCFFFF #CCCCFF #CC99FF #CC66FF #CC33FF #CC00FF #9900CC #003300 #009933 #33CC33 #66FF66 #99FF99 #CCFFCC #FFFFFF #FFCCFF #FF99FF #FF66FF #FF00FF #CC00CC #660066 #336600 #009900 #66FF33 #99FF66 #CCFF99 #FFFFCC #FFCCCC #FF99CC #FF66CC #FF33CC #CC0099 #993399 #333300 #669900 #99FF33 #CCFF66 #FFFF99 #FFCC99 #FF9999 #FF6699 #FF3399 #CC3399 #990099 #666633 #99CC00 #CCFF33 #FFFF66 #FFCC66 #FF9966 #FF6666 #FF0066 #CC6699 #993366 #999966 #CCCC00 #FFFF00 #FFCC00 #FF9933 #FF6600 #FF5050 #CC0066 #660033 #996633 #CC9900 #FF9900 #CC6600 #FF3300 #FF0000 #CC0000 #990033 #663300 #996600 #CC3300 #993300 #990000 #800000 #993333
Edit Your Algorithm!
Login Please!

colormap #003366 #336699 #3366CC #003399 #000099 #0000CC #000066 #006666 #006699 #0099CC #0066CC #0033CC #0000FF #3333FF #333399 #669999 #009999 #33CCCC #00CCFF #0099FF #0066FF #3366FF #3333CC #666699 #339966 #00CC99 #00FFCC #00FFFF #33CCFF #3399FF #6699FF #6666FF #6600FF #6600CC #339933 #00CC66 #00FF99 #66FFCC #66FFFF #66CCFF #99CCFF #9999FF #9966FF #9933FF #9900FF #006600 #00CC00 #00FF00 #66FF99 #99FFCC #CCFFFF #CCCCFF #CC99FF #CC66FF #CC33FF #CC00FF #9900CC #003300 #009933 #33CC33 #66FF66 #99FF99 #CCFFCC #FFFFFF #FFCCFF #FF99FF #FF66FF #FF00FF #CC00CC #660066 #336600 #009900 #66FF33 #99FF66 #CCFF99 #FFFFCC #FFCCCC #FF99CC #FF66CC #FF33CC #CC0099 #993399 #333300 #669900 #99FF33 #CCFF66 #FFFF99 #FFCC99 #FF9999 #FF6699 #FF3399 #CC3399 #990099 #666633 #99CC00 #CCFF33 #FFFF66 #FFCC66 #FF9966 #FF6666 #FF0066 #CC6699 #993366 #999966 #CCCC00 #FFFF00 #FFCC00 #FF9933 #FF6600 #FF5050 #CC0066 #660033 #996633 #CC9900 #FF9900 #CC6600 #FF3300 #FF0000 #CC0000 #990033 #663300 #996600 #CC3300 #993300 #990000 #800000 #993333
Edit Your Remark!
Login Please!

Delete Post >

Delete Comment >

Please wait...