随机生成一个小于等于N的数
来源:互联网 发布:嵌入式linux 开机启动 编辑:程序博客网 时间:2024/05/16 12:44
给定你一个方法,该方法可以随机生成一个0或者1,让你通过这个方法,随机生成一个小于N的数
private static int method() {int result = 0;outer: while (true) {result = 0;int i;for (i = 0; i < 5; i++) {int n = (int) (Math.random() * 2);result += Math.pow(2, i) * n;}if (result > 20) {i = 0;result = 0;} else {break outer;}}return result;}
思路:给定方法可以随机生成0和1,然后要随机生成一个小于等于N的数,我们可以把这个随机生成的数看成是二进制表示。假如这里的N为20,则二进制为10100,所以我们循环5次,5为20转换为二进制数的位数,由于每次都是产生0或1,然后我们就使用二进制转十进制数的方法,把这些0和1最终转换成十进制数,但是这样处理,最终的结果最大会超过20,所以还要进行一个判断,当输出的最终结果大于20,则重新进行循环生成,直到得到小于20的数,不过这样处理,当随机生成很大的数的时候,效率会很低,但暂时还没有想到比较好的方法
0 0
- 随机生成一个小于等于N的数
- 程序员面试题精选(44):整数分割(即求一个数N由小于等于N的数相加所得的所有组合)
- 小于等于n的正整数相加等于m的一个算法
- 【转】求小于等于N的与N互质的数的和
- 【转AekdyCoin】求小于等于N的与N互质的数的和
- 【转AekdyCoin】求小于等于N的与N互质的数的和
- 【AekdyCoin】求小于等于N的与N互质的数的和
- 产生n个小于等于m的不重复随机整数
- 求小于等于n的质数个数
- 输出所有小于等于n(n为一个大于2的正整数)的素数
- 输入任意一个大于2的正整数n,输出所有小于等于n的素数
- 在一个int数组里查找这样的数,它大于等于左侧所有数,小于等于右侧所有数。
- 在一个int数组里查找这样的数,它大于等于左侧所有数,小于等于右侧所有数
- 在一个int数组里查找这样的数,它大于等于左侧所有数,小于等于右侧所有数
- 在一个int数组里查找这样的数,它大于等于左侧所有数,小于等于右侧所有数
- 背包问题:求小于M并且加起来和等于N的数
- 欧拉函数,求小于等于n 的数里与 n 互质的数的个数
- 【欧拉函数】(小于或等于n的数中与n互质的数的数目)
- PHP数组键值使用单引号和双引号和无符号的区别
- Android自定义控件:动画类(十二)----layoutAnimation与gridLayoutAnimation
- CPU time与WALL time
- 使用adb pull 手机中的文件
- (五下)作用域,及其特点,$watch方法,$digest方法,$apply方法
- 随机生成一个小于等于N的数
- 常用排序的简单表格分析
- RxJava 各种操作符(3)
- C++运算符重载的方法
- UITextField属性、代理解析
- Qt Creator: Unknown debugger type "No engine"
- 【译】安卓中的自动化测试(1)
- 压图工具|图片压缩
- Python爬虫(bs4)-3