0,1,2-n-1,n 个数中随机取 m 个数,要求 0, 1, n-1,此 n 个数每个数被取到的概率相同: Knuth 书中的随机化方法,很容易写出: void genkunth (int n, int m) { for (int i = 0; i < n; ++i) { if (bigrand() % (n-i) < m) { m--; cout << i << endl; } } } 该算法的特点分析如下: 当 n == m 时,if 判断式恒成立,输出的结果也…
最近一个月的时间,基本上都在加班加点的写业务,在写代码的时候,也遇到了一个有趣的问题,值得记录一下. 简单来说,需求是从一个字典(python dict)中随机选出K个满足条件的key.代码如下(python2.7): def choose_items(item_dict, K, filter): '''item_dict = {id:info} ''' candidate_ids = [id for id in item_dict if filter(item_dict[id])] if le…
最近在用SVM为分类器做实验,但是发现数据量太大(2000k条记录)但是训练时间过长...让我足足等了1天的啊!有人指导说可以先进行一下随机采样,再训练,这样对训练结果不会有太大影响(这个待考证).所以就对数据进行了一下降采样,具体方法如下: shuf data | 其中,我的数据是在txt文件中存储的,基本格式是: record xxxxx record xxxxx record xxxxx record xxxxx ........... record n xxxxx ===========…