一个彩票功能:1、随机得到一个9位数(1-9,9个数字不重复),判断是不是连号,如果是连号就把该数给变量A,否则继续求数。
注:连号就是在9位数中出现数字连续>=4位,就为连号,反连或者正连都为连号。
比如:123456789 123456789为连号。
      123478569 1234为连号。
      123495678 1234和5678为连号。
      432198765 4321和98765为连号。
      等等
2、然后再随机取出10组9位数(1-9,9个数字不重复),是不是连号无所谓,然后把这10组9位数和A进行比较,判断10组数中是否有连号,并且与A数中的连号位置相等。如果连号又位置相等证明该号中奖。
比如:A 123456789  比较  123467895 中奖 1234
      A 432156789  比较  214356789 中奖 56789
      A 123498765  比较  123498765 中奖 123498765
      等等....     不知道我说的是否清晰,各位GGMM们,帮一下我。。先谢谢了。。

解决方案 »

  1.   

    随便写了一些,希望能给楼主一些思路,不是最合理的算法.//生成随机号码
    string buffer = "";
    int num = 0;
    int length = 0;
    while(length<9)
    {
    Random rd = new Random((int)DateTime.Now.Ticks);
    num = rd.Next(1, 10);
    if(buffer.IndexOf(num.ToString()) == -1)
    {
    buffer += num.ToString();
             length++;
    }
    }
    MessageBox.Show(buffer);//判断连号(只判断递增)
    string dest = "123495678";
    string buffer = "";
    bool lh;
    int add;
    for(int i = 0; i <= dest.Length - 1 - 2; i++)
    {
             lh = false;
    buffer = dest.Substring(i,1);
    add = 1;
    for(int j = i+1; j < i+4; j++)
    {
    if(int.Parse(dest.Substring(i,1)) + add == int.Parse(dest.Substring(j,1)))
    {
    buffer += dest.Substring(j,1);
    add ++;
    }
    else
    {
    lh = false;
    break;
    }
    lh = true;
    }
    if(lh) MessageBox.Show(buffer);
    }
    //希望能有用
      

  2.   

    public class getSeries
    {
    public getSeries()
    { } private static string GetZSeriesString(string Number)
    {
    string temp = Number.Substring(0,1);

    for(int i=1;i<Number.Length;i++)
    {
    if(Convert.ToInt32(Number.Substring(0,1)) - Convert.ToInt32(Number.Substring(i,1)) == (-i))
    {
    temp+=Number.Substring(i,1);
    }
    else
    {
    break;
    }
    }

    return temp;
    } private static string GetFSeriesString(string Number)
    {
    string temp = Number.Substring(0,1);

    for(int i=1;i<Number.Length;i++)
    {
    if(Convert.ToInt32(Number.Substring(0,1)) - Convert.ToInt32(Number.Substring(i,1)) == (i))
    {
    temp+=Number.Substring(i,1);
    }
    else
    {
    break;
    }
    }

    return temp;
    } public static ArrayList GetSeriesArrayList(string Number)
    {
    string number = Number; ArrayList Al = new ArrayList(); while (number.Length>3)
    {
    if(Convert.ToString(GetZSeriesString(number)).Length >3)
    {
    Al.Add(Convert.ToInt32(GetZSeriesString(number)));
    number = number.Replace(Convert.ToString(GetZSeriesString(number)),"");
    }
    else
    {
    number = number.Replace(Convert.ToString(GetZSeriesString(number)),"");
    }
    }

    number = Number; while (number.Length>3)
    {
    if(Convert.ToString(GetFSeriesString(number)).Length >3)
    {
    Al.Add(Convert.ToInt32(GetFSeriesString(number)));
    number = number.Replace(Convert.ToString(GetFSeriesString(number)),"");
    }
    else
    {
    number = number.Replace(Convert.ToString(GetFSeriesString(number)),"");
    }
    } return Al;
    }
    }自己已经搞掂。。其中一部分就是。也许我写的太烦琐,不是最好的解决办法。多谢大家帮助。。祝大家好运、快乐
      

  3.   

    public class getSeries
    {
    public getSeries()
    { } private static string GetZSeriesString(string Number)
    {
    string temp = Number.Substring(0,1);

    for(int i=1;i<Number.Length;i++)
    {
    if(Convert.ToInt32(Number.Substring(0,1)) - Convert.ToInt32(Number.Substring(i,1)) == (-i))
    {
    temp+=Number.Substring(i,1);
    }
    else
    {
    break;
    }
    }

    return temp;
    } private static string GetFSeriesString(string Number)
    {
    string temp = Number.Substring(0,1);

    for(int i=1;i<Number.Length;i++)
    {
    if(Convert.ToInt32(Number.Substring(0,1)) - Convert.ToInt32(Number.Substring(i,1)) == (i))
    {
    temp+=Number.Substring(i,1);
    }
    else
    {
    break;
    }
    }

    return temp;
    } public static ArrayList GetSeriesArrayList(string Number)
    {
    string number = Number; ArrayList Al = new ArrayList(); while (number.Length>3)
    {
    if(Convert.ToString(GetZSeriesString(number)).Length >3)
    {
    Al.Add(Convert.ToInt32(GetZSeriesString(number)));
    number = number.Replace(Convert.ToString(GetZSeriesString(number)),"");
    }
    else
    {
    number = number.Replace(Convert.ToString(GetZSeriesString(number)),"");
    }
    }

    number = Number; while (number.Length>3)
    {
    if(Convert.ToString(GetFSeriesString(number)).Length >3)
    {
    Al.Add(Convert.ToInt32(GetFSeriesString(number)));
    number = number.Replace(Convert.ToString(GetFSeriesString(number)),"");
    }
    else
    {
    number = number.Replace(Convert.ToString(GetFSeriesString(number)),"");
    }
    } return Al;
    }
    }自己已经搞掂。。其中一部分就是。也许我写的太烦琐,不是最好的解决办法。多谢大家帮助。。祝大家好运、快乐
      

  4.   

    public  class  getSeries  
                           {  
                                       public  getSeries()  
                                       {  
     
                                       }  
     
                                       private  static  string  GetZSeriesString(string  Number)  
                                       {  
                                                   string  temp  =  Number.Substring(0,1);  
                                                     
                                                   for(int  i=1;i  <Number.Length;i++)  
                                                   {  
                                                               if(Convert.ToInt32(Number.Substring(0,1))  -  Convert.ToInt32(Number.Substring(i,1))  ==  (-i))  
                                                               {  
                                                                           temp+=Number.Substring(i,1);  
                                                               }  
                                                               else  
                                                               {  
                                                                           break;  
                                                               }  
                                                   }  
                                                     
                                                   return  temp;  
                                       }  
     
                                       private  static  string  GetFSeriesString(string  Number)  
                                       {  
                                                   string  temp  =  Number.Substring(0,1);  
                                                     
                                                   for(int  i=1;i  <Number.Length;i++)  
                                                   {  
                                                               if(Convert.ToInt32(Number.Substring(0,1))  -  Convert.ToInt32(Number.Substring(i,1))  ==  (i))  
                                                               {  
                                                                           temp+=Number.Substring(i,1);  
                                                               }  
                                                               else  
                                                               {  
                                                                           break;  
                                                               }  
                                                   }  
                                                     
                                                   return  temp;  
                                       }  
     
                                       public  static  ArrayList  GetSeriesArrayList(string  Number)  
                                       {  
                                                   string  number  =  Number;  
     
                                                   ArrayList  Al  =  new  ArrayList();  
     
                                                   while  (number.Length  >3)  
                                                   {  
                                                               if(Convert.ToString(GetZSeriesString(number)).Length    >3)  
                                                               {  
                                                                           Al.Add(Convert.ToInt32(GetZSeriesString(number)));  
                                                                           number  =  number.Replace(Convert.ToString(GetZSeriesString(number)),  "  ");  
                                                               }  
                                                               else  
                                                               {  
                                                                           number  =  number.Replace(Convert.ToString(GetZSeriesString(number)),  "  ");  
                                                               }  
                                                   }  
                                                                 
                                                   number  =  Number;  
     
                                                   while  (number.Length  >3)  
                                                   {  
                                                               if(Convert.ToString(GetFSeriesString(number)).Length    >3)  
                                                               {  
                                                                           Al.Add(Convert.ToInt32(GetFSeriesString(number)));  
                                                                           number  =  number.Replace(Convert.ToString(GetFSeriesString(number)),  "  ");  
                                                               }  
                                                               else  
                                                               {  
                                                                           number  =  number.Replace(Convert.ToString(GetFSeriesString(number)),  "  ");  
                                                               }  
                                                   }  
     
                                                   return  Al;  
                                       }  
                           }  
    ---------------------------------------------------------------------------
    private bool IsSpecial(string currentNumber,string lotteryNumber,ArrayList al)
    {
    bool isSpecial = false;
    for(int j=0;j<al.Count;j++)
    {
    if(currentNumber.IndexOf(al[j].ToString())!=-1)
    {
    if(currentNumber.IndexOf(al[j].ToString()) == lotteryNumber.IndexOf(al[j].ToString()))
    {
    isSpecial = true;
    break;
    }
    }
    }
    return isSpecial;
    }
     
    自己已经搞掂。。其中一部分就是。也许我写的太烦琐,不是最好的解决办法。  
     
    多谢大家帮助。。  
     
    祝大家好运、快乐