#include <stdlib.h> #include <time.h> knuth(int n, int m) { srand((unsigned )); ; i < n; i++) { if (rand()%(n-i)<m ) { cout << i << endl; m--; } } } 为了方便解释假设n等于10,m等于5:第一次rand()%(n-0)的余数范围是0~9,有可能小于m(=5),可以输出i=0:随后i++,m--第二次r…
今天看到一段代码,可以从0.....n-1中随机等概率的输出m个不重复的数(n远远大于m).遂记录下来. 首先,产生随机数,不免要用到srand,rand函数.先简单介绍下两个函数. 1,void srand(unsigned int seed):  初始化随机数生成器,对于每一个不同的seed,每一次调用rand()将会产生不同的随机数序列. 特别的,当seed == 1时,生成器将会被重新初始化以前的初始化值,那么下次rand产生的随机数将会和第一次rand()相同. 所以,为了产生真正的随…
//假设输入的n远大于m void knuth(int n, int m) { for (int i = 0; i < n; i++) { if (rand() % (n - i)<m) { cout << i << endl; m--; } } } 证明: 1.输出不同的m个值: 由这个for循环循环n次,且在满足条件时才输出i,可知,输出不同值的要求已满足,因为每次输出的都是i值,而i值每次都是不一样的,m--保证了程序在输出了m个值后就不再输出i. 2.等概率:…
void knuth(int n, int m) { srand((unsigned) time( NULL)); for (int i = 0; i < n && m; i++) { //满足限定条件:rand() % (n - i) < m,即输出i,i递增不重复 if (rand() % (n - i) < m) { cout << i << "\t"; m--; } // end if } //end for retur…
该问题为产生不重复的随机数序列,形象点就是一副扑克牌中随机抽取N张. 摘自:不重复随机数列生成算法 改了一部分 /** * 从0-max随机选N个数出来 * **/ public static int[] GetRandomSequence2(int max,int N) { int[] sequence = new int[max]; int[] output = new int[N]; for (int i = 0; i < max; i++) { sequence[i] = i; } Ra…
使用像Scikit-Learn这样的库,现在很容易在Python中实现数百种机器学习算法.这很容易,我们通常不需要任何关于模型如何工作的潜在知识来使用它.虽然不需要了解所有细节,但了解机器学习模型是如何工作的仍然有用.这使我们可以在模型表现不佳时进行诊断,或者解释模型如何做出决策,如果我们想让别人相信我们的模型,这是至关重要的. 在本文中,我们将介绍如何在Python中构建和使用Random Forest.除了查看代码之外,我们还将尝试了解此模型的工作原理.因为由许多决策树组成的随机森林,我们首…
咋一看,这是个很简单的问题,但是如果n是个不确定的数呢?比如服务器每天会收到数以亿计的请求,但是目前服务器端不希望保存所有的请求,只想随机保存这些请求中的m个.试设计一种算法,能够使服务器实时保存m个请求,并使这些请求是从所有请求中的大致等概率被选中的结果.注意:不到一天的结束,是不能提前知道当天所有请求数n是多少的.下面我们分两种情况讨论(1)n已知,(2)n未知. 1 n已知 可以将问题简化为:从集合A(a_1, a_2, … ,a_n),中随机选取m(0≤m≤n)个元素,使得每个数被选取的…
从0到m-1这m个数中随机取出n个(n<=m) 要求每个数被取到的可能性相等. 第一个方法是把这m个数丢到一个List里面 然后用nextInt(list.size())来产生随机数 然后把list里面对应的元素丢到另一个数组或者list里面 这个方法本来是不错的 但要注意的是 为了保证每个元素取到的概率相等 需要每取出一个元素 就把它从list里面删除 原因就不解释了 简单的概率问题.但众所周知的是 list的remove(int index)方法 效率并不高 尤其是当m和n很大的时候 每一次…
前言 上午处理个需求需要从一个总数组中随机取出不同的元素.共使用两个方法.第一种方法较常规,经测试有bug,数据量大以后随机几次返回的对象直接是function而不是object. 当然简单数据类型应该没有这个问题.第二种是使用洗牌算法,亲测有效. 一.常规算法 /** 从数组中随机抽取数据 2016-09-09 **/ function getArrItem(arr, num) { var temp_array = new Array(); for (var index in arr) { t…
TODO:从数据库中随机抽取一条记录 1.最直接,最粗暴的方法先计算记录的总数,然后选择一个从0到记录总数之间的随机数n,利用skip跳过n条记录,这是效率低下的的方法,首先的记录总数,在用skip会很耗时间: 2.那么有什么办法能够提供效率呢,方法就是给每条记录添加一个0-1的随机因子random. "random" : 0.5127909016609585 想要在记录中查找一个随机记录,只要计算出一个随机数并作为查询条件就好了 Result = db.getCollection('…
最近有一个需求,比较简单,就是如标题所说的,从N个元素中随机取m个元素,当然这m个元素是不能存在重复的.本以为这么简单的需求,应该有现成的工具类来实现,但是几次查找居然没找到(有知道的可以推荐下哈^_^).只好自己实现了下. 自己的实现思路也不知道是不是有问题,或者还有没有更好的思路来实现,所以在这里贴出来,供有兴趣的猿友提提建议.找找问题,或者找到更好的实现思路. 废话不多说,直接上代码(java实现) /** * 随机取num个从0到maxVal的整数.包括零,不包括maxValue * @…
PHP中如何在数组中随机抽取n个数据的值? 最佳答案 array_rand() 在你想从数组中取出一个或多个随机的单元时相当有用.它接受 input 作为输入数组和一个可选的参数 num_req,指明了你想取出多少个单元 - 如果没有指定,默认为 1.如果你只取出一个,array_rand() 返回一个随机单元的键名,否则就返回一个包含随机键名的数组.这样你就可以随机从数组中取出键名和值. 如下例所示: <?php $input = array("Neo", "Morp…
oracle 中随机取一条记录的两种方法 V_COUNT INT:=0; V_NUM INT :=0; 1:TBL_MYTABLE 表中要有一个值连续且唯一的列FID BEGIN SELECT COUNT(*) INTO V_COUNT FROM  TBL_MYTABLE; SELECT TRUNC(DBMS_RADOM.VALUE(1,V_COUNT+1)) INTO V_NUM FROM DUAL; SELECT * FROM TBL_MYTABLE T WHERE T.FID=V_NUM;…
在这里,我们会用到DBMS_RANDOM包和CASE WHEN语句,思路如下: 一.利用DBMS_RANDOM.RANDOM函数随机生成数值,然后对数值进行取模,如果我们要在10个元素中随机读取的话,那我们需要对10进行取模. 二.再将取模后的值利用CASE WHEN语句与元素进行关联. 譬如,我有一个组合,里面包含“北京”,“上海”,“广州”,“深圳”,“武汉”五个元素,想从这五个元素中随机读取值来填充表的某个字段. 首先,创建测试表 SQL char)); Table created. 构造…
从SQLSERVER/MYSQL数据库中随机取一条或者N条记录 很多人都知道使用rand()函数但是怎麽使用可能不是每个人都知道 建立测试表 USE [sss] GO ,NAME ) DEFAULT 'nihao') GO CREATE INDEX IX_RANDTEST_ID ON RANDTEST(ID) GO INSERT INTO RANDTEST DEFAULT VALUES SELECT * FROM RANDTEST 第一种写法:大家会想到ORDER BY NEWID() SET…
近期项目中遇到一个需求,从一个列表中随机展示列表的部分内容,需求不大,JS也非常容易实现.主要是运用到了Math对象的random方法,和Array的splice方法. 思路是先新建一个数组,存放所有的列表,然后算出随机数,从数组中取出这个随机索引对应的值,然后组成一个随机数组. 源代码如下: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" Content="…
若要在i ≤ R ≤ j 这个范围得到一个随机整数R ,需要用到表达式 FLOOR(i + RAND() * (j – i + 1)).例如, 若要在7 到 12 的范围(包括7和12)内得到一个随机整数, 可使用以下语句: SELECT FLOOR(7 + (RAND() * 6)); 以上摘抄自MySQL手册 从 Mysql 表中随机读取数据不难,方法还挺多的,但是如果要考虑效率,得到一个快速的高效率的方法,那就不是一件简单的事情了(至少对我来说不简单). 随机获得Mysql数据表的一条或多…
工作中经常遇到有关数组的一些操作 1. 从数据中随机取n条不重复的数据 (PS:下面的S.each是KISSY.each方法,大家可以改为for循环) /* 1 从数组arr中随机取n条不重复的数据 */ function myRand(arr,num){ var newArr = []; rand(num); //随机 n 条 function rand(k){ if(k==0){ return; } var index = Math.floor(Math.random() * arr.len…
这就是数学中的 A m n 的选取. 共有   m!/n!种可能.. 同样举一个例子吧.. 从12345这五个数字中随机选取3个数字,要求选出来的这三个数字是有序,也就是说从12345中选出来的是123这三个数的话,那么就有 123,132,312,321,213,231 这六种可能.. 好了.废话不多说了,上程序,解释写在城市的注释里. //A53 //排序,12345找出所有的排序组合 public class Test7 { static char[] ch; static String…
1.使用python random模块的choice方法随机选择某个元素 from random import choice foo = ['a', 'b', 'c', 'd', 'e'] print choice(foo) 2.使用python random模块的sample函数从列表中随机选择一组元素 import random list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] slice = random.sample(list, 5) #从list中随机获取5…
// 在数组arr中随机获取count数量的元素; const getRandomArrayElements = (arr, num) => { // 新建一个数组,将传入的数组复制过来,用于运算,而不要直接操作传入的数组; let temp_array = new Array(); for (let index in arr) { temp_array.push(arr[index]); } // 取出的数值项,保存在此数组 let return_array = new Array(); fo…
package text1; import java.util.ArrayList; import java.util.HashSet; /* * 要求产生10个随机的字符串, * 每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同, * 每个字符串长度为10; */ public class Example { //先设置一个集合用来存储要随机的数据 public static ArrayList<Character> getContainer(){ //建立一个…
=================================版权声明================================= 版权声明:原创文章 谢绝转载  请通过右侧公告中的“联系邮箱(wlsandwho@foxmail.com)”联系我 勿用于学术性引用. 勿用于商业出版.商业印刷.商业引用以及其他商业用途. 本文不定期修正完善. 本文链接:http://www.cnblogs.com/wlsandwho/p/8539169.html 耻辱墙:http://www.cnblo…
别怪我是一个闷葫芦,没那么多花哨的语言,废话不多说,先说说小实例的要求: 编写一个方法,实现从n-m个数中随机选出一个整数,要求:传递的参数不足两个或者不是有效数字,返回[0-1]之间的随机数,需要解决n和m两个数大小问题,如果m<n,两个参数的值进行交换: 看到这个求随机数的小实例,相信很多人都会写,也写过很多相关的程序代码,所以,重要的知识点没有,旨在给初学者一些启发,大牛可略过! 既然是给初学者看的,那么我们就从最基本的东西一步一步的看,便于理解,先拆分一下要求吧: 1.求一个n-m的随机…
<?php /* * * 通过一个标识,从一个数组中随机获取固定数据 * $arr 数组 * $num 获取的数量 * $time 随机固定标识值,一般用固定时间或者某个固定整型 * */ function getRandFixedData($arr, $num, $time = 0) { if(empty($arr)){ return $arr; } $time = abs($time); //获取绝对值,防止出现负数 //数组的个数 $listcount = count($arr); /*i…
1.tf.nn.lrn(pool_h1, 4, bias=1.0, alpha=0.001/9.0, beta=0.75) # 局部响应归一化,使用相同位置的前后的filter进行响应归一化操作 参数说明:pool_h1表示输入数据,4表示使用前后几层进行归一化操作,bias表示偏移量,alpha和beta表示系数 局部响应的公式 针对上述公式,做了一个试验代码: # 自己编写的代码, 对x的[1, 1, 1, 1]进行局部响应归一化操作,最后结果是相同的x = np.array([i for…
原文链接:http://caibaojian.com/js-get-random-elements-from-array.html js如何从一个数组中随机取出一个元素或者几个元素. 假如数组为· var items = ['1','2','4','5','6','7','8','9','10']; 1.从数组items中随机取出一个元素 var item = items[Math.floor(Math.random()*items.length)]; 2.从前面的一篇随机数组中随机取几个元素…
php使用array_rand()函数从数组中随机选择一个或多个元素的方法. 使用array_rand() 函数从数组中随机选出一个或多个元素,并返回.  array_rand(array,number)  参数 描述  array 必需.规定输入的数组参数. www.jbxue.com number 可选.默认是 1.规定返回多少个随机的元素.  例子:  <?php  $a=array("a"=>"Dog","b"=>&qu…
java 从List中随机取出一个元素 List<Integer> list = new ArrayList<>(); Random random = new Random(); int n = random.nextInt(list.size()); list.get(n);…
# 1.使用python random模块的choice方法随机选择某个元素 import random foo = ['a', 'b', 'c', 'd', 'e'] from random import choice print(choice(foo)) # 2.使用python random模块的sample函数从列表中随机选择一组元素 list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # 设置种子使得每次抽样结果相同 random.seed(10) slice…