8月份遇到的一个面试题,整理了下解法:
/** * 题目:给定一个函数rand5(),该函数可以随机生成1-5的整数,且生成概率一样。现 * 要求使用该函数构造函数rand7(),使函数rand7()可以随机等概率的生成1-7 * 的整数。 * * 解题:这种思想是基于,rand()产生[0,N-1],把rand()视为N进制的一位数产生器, * 那么可以使用rand()*N+rand()来产生2位的N进制数,以此类推,可以产生3位, * 4位,5位...的N进制数。这种按构造N进制数的方式生成的随机数,必定能保证 * 随机,而相反,借助其他方式来使用rand()产生随机数(如 rand5() + rand()%3 ) * 都是不能保证概率平均的。 此题中N为5,因此可以使用rand5()*5+rand5()来产生 * 2位的5进制数,范围就是1到25。再去掉22-25,剩余的除3,以此作为rand7()的 * 产生器。 */ public class Rand7 { Random random = new Random(); int rand5(){ return random.nextInt(5) + 1; } /* * 0 5 10 15 20 //5 * (rand5() - 1) * ------------- * 1 6 11 16 21 * 2 7 12 17 * 3 8 13 18 * 4 9 14 19 * 5 10 15 20 */ int rand7() { int x = 0; do{ x = 5 * (rand5() - 1) + rand5(); }while(x > 21); return 1 + x%7; } public static void main(String args[]){ Rand7 r = new Rand7(); for (int i = 0; i < 100; i++) { System.out.println(r.rand7()); } } }
相关推荐
随机生成,要用到随机数生成函数,matlab有好几种,这里实现使用了rand和randi函数,不同的是一个实现的是double类型,一个生成的是int类型的值。 2.位置随机,当然就采用了球心坐标是随机数,随机数在给定区间之内...
本书从函数功能、函数格式、参数说明、注意事项、Excel 版本提醒、案例应用、交叉参考7 个方面,全面、细致地介绍了Excel 2016/2013/2010/2007/2003 中公式和函数的使用方法、实际应用和操作技巧。最后3 章还将公式...
生成一个给定范围的随机数,用 PHP 就太简单不过了,而且可以指定从负数到正整数的范围,如: <?php echo mt_rand(-988, 888); 这样就随机生成 -988 到 888 的随机数。 使用 Go 就要稍微麻烦一点。以下两个函数...
鉴于该库的性能也可能会有所不同并成为一个因素,因此有一个例程旨在生成一组给定长度的随机数。 关于 这个库是模块化的。 它有一组通用函数和两个不同的生成器。 职能 seed (x) :将生成器播种到x 。 generate() ...
对于均匀分布,MATLAB 函数 rand() 返回的值乘以 (ba),然后添加到 a。 对于正态分布,randn() 的输出乘以标准差 (b),然后与平均值 (a) 相加。 参数:(输入) a - (ix 1) 值的行向量,指定每个值的下限正态分布...
通过给定城市的个数N、城市之间的最小、最大距离,通过MATLAB的rand函数生成一个N*N的距离矩阵(其对角线距离默认为0)。 2.初始化种群并且编码 可以把一个N个城市的旅行回路排列成一个N维向量,用它来表示一个...
(3) Metropolis准则,若f(x1)-f(x0)>0,接受该点(更新x0),且接受概率为p=exp(-(f(x1)-f0)/T),若p>r(r为0-1上的随机数),接受该点(更新x0),否则放弃该点 (4)执行降温操作:T=T*k;返回(2)继续 (5)执行...
首先进行四个数的随机输出(给定的范围是1到13),用rand()函数实现。 接着让用户输入,并对用户输入的进行判断,这里我用了数据结构里栈构造一个计算器对输入的进行运算。定义一个存储运算符的栈SNode_Symbol和一个...
现在MATHMODL已成为一个普通的工具箱了。 % % 可以使用命令help mathmodl查看内容或直接用命令mathmodl学习教程。 % % 数据拟合 % interp1 - 一元函数插值 % spline - 样条插值 % polyfit - 多项式插值或拟合 % ...
为了调用一个Lua函数, 你可以或者用 call_function() 或者用 一个对象(object). template Ret call_function(lua_State* L, const char* name, ...) template Ret call_function(object const& obj, ...) call_...
我们正在修补一个谓词函数,以检查给定的Enumerable / Array是否已排序,然后修补一个新的排序“算法”,该算法以递归方式洗净Enumerable / Array,直到对其进行排序 在我的机器上经过大约8个长度后,它完全将堆栈...
① 当显式罗列成员时,必须为每个成员输入一个不同的名字,中间用空格或逗号搁开,允许混合使用。 例2.1 可以定义一个名为students的原始集,它具有成员John、Jill、Rose和Mike,属性有sex和age: sets: students/...
不指定范围产生随机数用到函数rand(),函数原型为int rand(),无参数。此时会产生一个介于0~RAND_MAX间的整数。RAND_MAX的大小可以查看,在include文件夹(linux在usr目录、windows在安装目录)的stdlib.h可以看到...
np.random的随机数函数(1) 函数 说明 rand(d0,d1,..,dn) 根据d0‐dn创建随机数数组,浮点数, [0,1),均匀分布 ...根据d0‐dn创建随机数数组,标准正态...a = np.random.rand(3, 4, 5) a Out[3]: array([[[0.2
例如,如果你调用一个函数,foo: foo(in,'颜色','绿色','魅力',5); 在 foo 中,您调用 PARSEVARARGIN: ParseVarargin({'Color','Charm','Strangeness'}); PARSEVARARGIN 将创建一个变量颜色,值为“绿色”,一个...
练习 1.1:通过直接卷积过滤随机信号编写一个 MATLAB 程序(a) 生成 50 个样本的随机输入信号,其幅度均匀分布在 -2 和 3(参见 rand 函数文档); (b) 通过直接卷积 1 与滤波器脉冲响应 h(n) ... (c) 在同一张图上画...
% *specrnd - 给定分布律随机数生成 % *randrow - 整行随机排列 % *randmix - 随机置换 % *chi2test - 分布拟合度卡方检验 % % 数学规划 % lp - 线性规划 % linprog - 线性规划(在MATLAB5.3使用) % fmin - 一元函数...
1.查找随机整数 目的是在给定前两个“随机”数字的情况下“预测”正在生成的第三个数字 被利用的函数是Java Random类中的nextInt(): int n1 = rand.nextInt(); int n2 = rand.nextInt()...用给定的加密密钥生成密文
现在MATHMODL已成为一个普通的工具箱了。 % % 可以使用命令help mathmodl查看内容或直接用命令mathmodl学习教程。 % % 数据拟合 % interp1 - 一元函数插值 % spline - 样条插值 % polyfit - 多项式插值或拟合 % ...