首页 新闻 搜索 专区 学院

C#去除随机数重复

0
悬赏园豆:5 [待解决问题]

用随机数随机产生多个不重复的数据?

GoldLemon的主页 GoldLemon | 初学一级 | 园豆:180
提问于:2010-12-15 16:03
< >
分享
所有回答(4)
0
不用在为没标记这个数据是不是已经被添加过了,这个已经随机生成过了 下次又出现了 怎么办 而烦恼了
public  Hashtable  NoOrder(int count)
        {
            ArrayList mylist = new ArrayList();
            Hashtable hash = new Hashtable();
            Random r=new Random ();
            for (int i = 0; i < count; i++)
            {
                mylist.Add(i);
            }
            int listcount=mylist.Count;
            for (int i = 0; i < listcount; i++)
            {
               int rand= r.Next(mylist.Count);
               hash.Add(mylist[rand],i );
               mylist.RemoveAt(rand);
            }
            return hash;
        }  
三月软件工作室——任忌 | 园豆:524 (小虾三级) | 2010-12-15 17:17
O(∩_∩)O谢谢!
支持(0) 反对(0) GoldLemon | 园豆:180 (初学一级) | 2010-12-15 17:49
你好,我现在又有一个问题,我是根据随机产生的数作为位置直接与数据库关联,虽然位置不一样,但其它数据有相同的,所以取出的数据还是会重复,请问如何解决?
支持(0) 反对(0) GoldLemon | 园豆:180 (初学一级) | 2010-12-17 15:38
同一轮的重复问题解决了,但在进行第二轮时又出现第一轮已经生产的数据,如何去除这种重复?
支持(0) 反对(0) GoldLemon | 园豆:180 (初学一级) | 2010-12-17 15:41
哈希可以避免重复你不知道吗 你不可以试试
0

你用一个变量保存上一次生成的随机数,然后比较这次生成的随机数,如果相同就重新生成一次,直到不一样为止,这样就可以避免重复的随机数了。

流水殇 | 园豆:404 (菜鸟二级) | 2010-12-16 18:28
其实用1L的方式不错。
支持(0) 反对(0) itaozi | 园豆:1053 (小虾三级) | 2010-12-16 20:02
0

这是我用ListBox的时候去重复的代码,觉得跟你的要求差不多,就是先Check一下有没有,有的话就删除重复的数据源。

 

//循环判断ListBox是不是有重复的项,如果有就移除
            for (int i = 0; i < lsbValue.Items.Count; i++)
            {
                for (int j = i + 1; j < lsbValue.Items.Count; j++)
                {
                    if (lsbValue.Items[j].ToString() == lsbValue.Items[i].ToString())
                    {
                        lsbValue.Items.RemoveAt(j);
                    }
                }
            }

无 影 | 园豆:59 (初学一级) | 2010-12-17 13:18
还是谢谢你的回答,但我不用ListBox
支持(0) 反对(0) GoldLemon | 园豆:180 (初学一级) | 2010-12-17 15:32
一个道理。
支持(0) 反对(0) 无 影 | 园豆:59 (初学一级) | 2010-12-19 20:57
0

为什么要删除呢 ?判断是否存在,存在就执行下一轮。

後浪 | 园豆:830 (小虾三级) | 2010-12-17 18:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册