none
如何按照比例抽取一个数字里面的数据! RRS feed

答案

  •             List<int> arr = new List<int>();
    
                for (int i = 0; i < 10; i++)
                {
                    arr.Add(i);
                }
    
                for (int i = 0; i < System.Math.Abs(arr.Count * 0.8); i++)
                {
                    // statements
                }
    

    给了你个例子,取数组所有元素数目的80%,如果要实现随机的话,可以取数组下标与上标之间的随机数作为索引,然后抽取80%数目的的元素就可以了。
    ㄗ.s_どうしてそんなことするの、思い出さないほうがいいんじゃないの..


    接上面的补充(随机抽取算法)

    namespace A
    {
        class Program
        {
            static void Main(string[] args)
            {
                List<int> arr = new List<int>();
                Random r = new Random(DateTime.Now.Millisecond);

                //创建数据的时候,随机存放
                for (int i = 1i <= 100i++)
                {
                    arr.Insert(r.Next(0arr.Count), i);
                }
                //移除20%的数据,随机移除
                for (int i = 1i <= arr.Count*0.2i++)
                {
                    arr.Remove(r.Next(0arr.Count));
                }

                //打印剩下的
                foreach (var item in arr)
                {
                    Console.WriteLine(item+" ");
                }

            }
        }
    }

     


       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处
    • 已标记为答案 yyyukai 2011年12月21日 6:37
    2011年12月16日 5:04
    版主

全部回复

  •             List<int> arr = new List<int>();
    
                for (int i = 0; i < 10; i++)
                {
                    arr.Add(i);
                }
    
                for (int i = 0; i < System.Math.Abs(arr.Count * 0.8); i++)
                {
                    // statements
                }
    

    给了你个例子,取数组所有元素数目的80%,如果要实现随机的话,可以取数组下标与上标之间的随机数作为索引,然后抽取80%数目的的元素就可以了。
    ㄗ.s_どうしてそんなことするの、思い出さないほうがいいんじゃないの..
    2011年12月16日 3:51
  •             List<int> arr = new List<int>();
    
                for (int i = 0; i < 10; i++)
                {
                    arr.Add(i);
                }
    
                for (int i = 0; i < System.Math.Abs(arr.Count * 0.8); i++)
                {
                    // statements
                }
    

    给了你个例子,取数组所有元素数目的80%,如果要实现随机的话,可以取数组下标与上标之间的随机数作为索引,然后抽取80%数目的的元素就可以了。
    ㄗ.s_どうしてそんなことするの、思い出さないほうがいいんじゃないの..


    接上面的补充(随机抽取算法)

    namespace A
    {
        class Program
        {
            static void Main(string[] args)
            {
                List<int> arr = new List<int>();
                Random r = new Random(DateTime.Now.Millisecond);

                //创建数据的时候,随机存放
                for (int i = 1i <= 100i++)
                {
                    arr.Insert(r.Next(0arr.Count), i);
                }
                //移除20%的数据,随机移除
                for (int i = 1i <= arr.Count*0.2i++)
                {
                    arr.Remove(r.Next(0arr.Count));
                }

                //打印剩下的
                foreach (var item in arr)
                {
                    Console.WriteLine(item+" ");
                }

            }
        }
    }

     


       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处
    • 已标记为答案 yyyukai 2011年12月21日 6:37
    2011年12月16日 5:04
    版主
  • IList<Int32> arr=new List<Int32>();
    for (int i = 0; i < 100; i++)
           {
                arr.Add(i);
            }
    
    arr.Skip(20);
    
    
    不随机,跳过20%


    GetZ 不抛弃,不放弃.
    • 已建议为答案 zongTest 2011年12月30日 15:27
    2011年12月16日 11:39