产生任意范围内的随机数

 1 //产生[low,high]内的任意随机数,并返回
 2 float randnum(int optimization,float low,float high)
 3 {
 4 int ret_rnd = 0.0;
 5
 6 float integerf = 0.0;
 7 float driftf = 0.0;
 8
 9 if (low >= high)
10 {
11 printf("low >= high,rearrange them\n");
12 getchar();
13 return;
14 }
15 //---------------------------------------------
16
17 int integer; //整数部分
18 int decimals; //小数部分
19
20 float diff = high - low;
21
22 integer = (int)(high - low); //取整数部分
23
24 decimals = diff - integer; //取小数部分
25 //---------------------------------------------
26
27 //1.先计算一个整数偏量值
28 if (integer > 0)
29
30 integerf= (float)(rand() % integer);
31
32 else
33 integerf= 0.0;
34
35 //2.在整数偏量的基础上进行波动
36 do
37 {
38 driftf = (float)(rand() / RAND_MAX);//产生小数
39
40 driftf *= (rand() % 2 == 0 ? 1 : -1);
41
42 } while ((integerf+driftf<0)||(integerf+driftf>diff));
43
44
45
46 ret_rnd = low+(integerf + driftf) ;
47
48 return ret_rnd;
49
50
51 }
 
时间: 2024-10-11 23:57:49

产生任意范围内的随机数的相关文章

设计一个方法,可以实现任意范围内的随机数

package cn; /**  * 请设计一个方法,可以实现获取任意范围内的 随机数   */ public class MathDemo1 { public static void main(String[] args) { for (int i = 0; i < 100; i++) { System.out.println(getRandom(200, 300)); } } public static int getRandom(int start ,int end){ //int num

SQL Server生成指定范围内的随机数

在开发中很多时候,我们都会遇到这种需要生成一个指定范围随机数的情况.而且在很多语言中比如Java.C#.SQl等,都会有一个函数生成一个类似于0.234273983423789的随机小数,而所有的随机数都是通过这个最基本的随机数(0.234273983423789)变化过来的. 下面我说一下生成指定范围随机数的思路,比如我要生成一个100-999范围内的随机数,我就要保证我写的生成随机数的表达式所生成的值,最大是999,最小是100.还有就是要明白一个数学里的小道理,0.99去乘一个数字所得的结

指定范围内生成随机数

随机数生成20~70之间的数值: public class Random { public static void main(String[] args) { java.util.Random r = new java.util.Random(); for (int i = 0; i < 10; i++) { System.out.print(" " + (r.nextInt(70) + 20)); } } } 运行结果如下图: 指定范围内生成随机数,布布扣,bubuko.com

js生成某个范围内的随机数

根据random方法,Math.random()方法返回的是0到1的随机数(不包含0和1): ? 1 2 3 4 5 6 7 8 //生成k个m到n的随机数,返回数组     function Temp(m,n,k) {         var all = new Array();         for (var i = 0; i < k; i++) {             all[i] = Math.floor(Math.random()*(n-m) + m); //Math.floor

zoj 1081 Points Within 判断点是否在任意多边形内(模板)

题目来源: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=81 分析: 从p点出发做平行于x轴的射线 l. 求射线与 多边形 线段的交点数num, 若是偶数 , 该点 在外, 若为奇数, 该点在内. 注意: 两个特判, 1:   一个是 射线 l 与 多边形的边  重合 , 若该p点在 线段上, 返回1, 否则 交点 记为 0 个 2: 一个是 射线与 线段的交点 ,为线段的端点, 则我们 对线段的 较低交点 不计算. 代码

如何获取两个任意时间段内的所有日期(及其他处理日期时间的方法总结)

(1)用一下方法获取两个任意时间段内的所有日期,代码如下: #1.将字符串转换成datetime类型 def strtodatetime(datestr,format): return datetime.datetime.strptime(datestr,format) #2.时间转换成字符串,格式为2008-08-02 def datetostr(date): return str(date)[0:10] #3.两个日期相隔多少天,例:2008-10-03和2008-10-01是相隔两天 de

java的random生成某个范围内的随机数

import java.util.Random; /** * @author HP * @date 2019/4/16 */ public class randomTest { public static void main(String[] args) { Random random = new Random(); //生成64-128内的随机数 int i = random.nextInt() * (128 - 64 + 1) + 64; /** * 生成 [m,n] 的数字 * int i

判断点是否在任意多边形内

最近项目用到:在Google map上判断事发地点,是否在管辖区域内.也就是典型的判断一个点是否在不规则任意多边形内的例子. 但是Google Map没有提供相应的api,找资料发现百度地图提供了一个工具类,肿么办,为了一个工具类,加入百度地图吗,操蛋,这是不可能的! 百度地图api链接:http://wiki.lbsyun.baidu.com/cms/androidsdk/doc/v3_7_0/com/baidu/mapapi/utils/SpatialRelationUtil.html Po

java产生任意范围内不重复的随机数

n:需要的随机数的数目 min:下限: max:上限 import java.util.* ; class Tester { public static void main(String args[]) { HashSet<Integer> set = new HashSet<Integer>() ; int min = 1 ; int max = 50 ; Ran(min,max,10,set) ; Iterator it = set.iterator() ; System.ou