题:1。有1000(N)个玩具(具有属性)。2.从中找出符合条件的5个(5个为一组),要求找到的组合最多。
比如有玩具1,2,3,4,5,6……1000,需要的结果是:1,2,3,4,5;6,7,8,9,10;……
1000个找5个的最大组是20;现在就是求算法;谢谢各位啊赐教!

解决方案 »

  1.   

    1000个找5个的最大组是20.--------->LZ最大组应该是200
      

  2.   

    int numMax=0;
    int num2=0;
    int num3=0;
    int num4=0;
    int numMin=0;int[] nums = new int[1000];for(int i=0;i<1000;i++)
    {
    if(num[i]>numMin)
    {
    num4=numMin;
    num3=num4;
    num2=num3;
    numMax=num2;
    numMin=num[i];
    }
    }
      

  3.   

        private void count(int n,int l,int[] toys,int bi,int max)
        {
            if (l == 5)
            {
                total++;
            }        for (int i = bi; i < max; i++)
            {
                if (l + 1 <= 5 && n + toys[i] <= 200)
                {
                    ftoys[l] = toys[i];
                    count(n + toys[i], l + 1, toys, i + 1, max);
                }
            }
        }
      

  4.   

    真是我的错,大家不理解。可是现在修改不了。再发一篇 啊题目:
    题:1。有1000(N)个玩具(具有属性)。2.每个玩具都有价格(价格有相同的也有不同的)。
        3。 5个一组打包,条件是选择的5个玩具的“总价格”180-200之间。(>=180,<=200)
       4。问如何打最多的包。
    拿10个来举例吧。玩具的价格分别是 编号1到10(34,35,36,37,38,40,41,42,43,44)
    结果1:(34,35,36,37,38)=180符合.剩下的就不行了。
    结果2:(34,35,43,44,40)=196;(36,37,38,41,42)=194这两个都符合,得到最大组(但不一定是最优组)
    这下该明白了吧;
       看看大家有没有设计思路
      

  5.   

    跑了个300个玩具的,5分钟左右,1000个的不敢跑,怕死机。<html xmlns="http://www.w3.org/1999/xhtml" ><script runat="server">
        int[] toys = new int[1000];
        int total = 0;
        int[] ftoys = new int[5];    protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {        }
        }    private void count(int n,int l,int[] toys,int bi,int max)
        {
            if (l == 5 && n>=180)
            {
                total++;
                //for (int j = 0; j < 5; j++) { Response.Write(ftoys[j].ToString() + "+"); }
                //Response.Write("=" + n.ToString() + "<br/>");
            }        for (int i = bi; i < max; i++)
            {
                if (l + 1 <= 5 && n + toys[i] <= 200)
                {
                    ftoys[l] = toys[i];
                    count(n + toys[i], l + 1, toys, i + 1, max);
                }
                else
                {
                    break;
                }
            }
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            Random ro = new Random();
            int ml = int.Parse(this.TextBox1.Text);
            for (int i = 0; i < ml; i++)
            {
                toys[i] = ro.Next(100);
                //toys[i] = i;
                Response.Write(toys[i].ToString() + ",");
            }
            Response.Write("<br/>");        for (int i = ml-1; i >=0; i--)
            {
                int min = toys[0];
                int maxp = 0;
                for (int j = 1; j <= i; j++)
                {
                    if (min < toys[j]) { min = toys[j]; maxp = j; }
                }
                int tem = toys[i];
                toys[i] = min;
                toys[maxp] = tem;
            }        for (int i = 0; i < ml; i++)
            {
                Response.Write(toys[i].ToString() + ",");
            }
            count(0, 0, toys, 0, ml);
            Response.Write("<br/>");
            Response.Write(total.ToString());
        }
    </script>
    <head runat="server">
        <title>无标题页</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" /></div>
        </form>
    </body>
    </html>