-
求解决思路。。0
假设有100个数字 代表100种不同的物品
每次随机取其中一个使用
使用频率越高的 下次循环取用的时候 随机到这个数的机率就更大。。
反之随机到的机率就越小。。
比如 1234567890 9号在10次随机取中 被抽到 5次 3被抽到3次 7被抽1次 4=1 1=1
他们在第11次随机抽取的 概率 大概为 93“741”25680 大概是这么个排位。
求这个解决思路。。
741是同概率级别的 都被抽过1次 有限概率比后面5位高。。
2012年7月12日 09:11
11个答案 按时间排序 按投票排序
-
好吧,既然一个不行,那就来俩,嘿嘿
概率是分子/分母,减少分子不可行,会造成某数概率直接为0,所以只能增加分母。
有两个数组,A和B,假设,A里面放的是1,2,3,4,5,6,7,8,9,0共10个数,对应10个物品,B里面没有数,只是有个固定长度为10。
取物品分两步,第一步,从A里面,随机取10个数,放到B里,然后再从B里随机取一个数,这个数代表的就是实际取到的物品。
假设第一次取到的物品依然是5,那么在B里面固定放一个5,第二次取的时候,从A里随机取9个数,放入B,然后再从B里随机取物品。
这样就能满足概率变大,具体变大的幅度,以及概率具体是多少,你自己算算,我懒得算了,太麻烦了2012年7月16日 15:58
-
带权重的随机,可以用伪随机模拟,参考一下代码:
private static void test3() {
// 数=权重,0=20%,1=30%,2=50%
int i=0;
Map<String, Integer> probabilityStatMap = new HashMap<String, Integer>();
while(i++<100000) {
double d = Math.random();
String key = null;
if(d<=0.2d) {
key="0";
} else if (d<=0.5d) {
key="1";
} else {
key="2";
}
Integer v = probabilityStatMap.get(key);
probabilityStatMap.put(key, v==null?1:(v+1));
}
for(Entry<String, Integer> entry: probabilityStatMap.entrySet()) {
System.out.println(entry.getKey() + "=" + entry.getValue());
}
}2012年7月13日 15:22
-
这个我做过类似的,我做的是蚁群算法的应用。
/// <summary>
/// 数组中放入了每个节点的概率值,函数返回一个int值,即被抽到的节点的index
/// </summary>
/// <param name="aa"></param>
/// <returns></returns>
public static int getNum(double[] aa)
{
//获取0.0到1.0间的一个数
double rd = new Random(GetRandomSeed()).NextDouble();
double para = 0.0;
int i = 0;
for (int j = 0; j < aa.Length; j++)
{
para += aa[j];
i = j;
if (para > rd) break;
}
return i;
}
/// <summary>
/// 提高随机数不重复概率的种子生成方法
/// </summary>
/// <returns></returns>
static int GetRandomSeed()
{
byte[] bytes = new byte[4];
//使用加密服务提供程序 (CSP)提供的实现来实现加密随机数生成器 (RNG)。无法继承此类。
System.Security.Cryptography.RNGCryptoServiceProvider rng =
new System.Security.Cryptography.RNGCryptoServiceProvider();
rng.GetBytes(bytes);//用经过加密的强随机值序列填充字节数组。
return BitConverter.ToInt32(bytes, 0);
}
主要用的这两个方法,数组里面存放的是每个数字被查到的概率!2012年7月13日 13:26
-
public static List<Integer> getRandomList(List<Integer> list){
double r = Math.random();
int index = (int)(r*list.size());
list.add(list.get(index));
return list;
}2012年7月12日 23:11
-
带权重的随机数。。最直接的想法:
产生一个在(0--n)范围的随机数,根据权来确定每个记录所对应的范围,
比如1,2,3三个权,将n分为6份,产生的随机数对应那个范围,就是那个。
在你例子 就是 1234567890 对应的权重是 1031001050。为了避免0 全部加1 为2142112161,n=2+1+4+2+1+1+2+1+6+1=21,那么【1,2】表示1,【3,3】表示2,【4,7】表示3.。。。2012年7月12日 22:16
-
建一张商品取数次数表,比如:
商品,次数
0 4
1 4
2 6
3 5
4 0
5 9
6 3
7 12
8 10
9 2
你用每个商品的次数除所有商品次数之和得到的数乘100(如果想更精确可以乘1000,10000)得到循环次数x,然后循环x次,判断每次取的是不是那个商品,是的话退出,不是的话继续循环,这样次数越多的循环的次数越多,概率越大2012年7月12日 12:59
-
概率这事很操蛋,下面我来说说我的办法
一个死循环
插取一次,比如第一次插取是9,那么向0,1,2,3,4,5,6,7,8,9这10个数中增加一个9,变成0,1,2,3,4,5,6,7,8,9,9
依此类推,一切OK
PS:我的解决办法是完全可以满足楼主要求的,但是楼主的问题的描述可能跟实际情况有出入,可依此改造2012年7月12日 10:09
-
假设有1234567890共10个数字,从里面进行随机取数,假设第一次取到5,为了让概率变大,将1234567890变为12345678905,然后第二次从12345678905里随机取数,5的概率就变大了,具体变大的幅度,可自己控制
2012年7月12日 09:32
相关推荐
### 四年级数学上册5解决问题的策略5.1.1用列表的方法解决求两积之和(差)的实际问题教学反思 #### 教学背景与目标 在四年级数学的教学过程中,解决问题的能力培养是非常重要的一个环节。本章节旨在通过具体的实例...
《空间中线线角线面角面面角成法原理和求法思路》 空间几何是数学中的一个重要分支,尤其在解决三维空间中的线线角、线面角、面面角问题时,需要掌握特定的方法和原理。以下将详细阐述这些角度的成法和求解思路。 ...
《解决椭圆部分问题的新思路——化椭为圆》这篇文档介绍了一种创新的方法来处理椭圆相关的数学问题,即通过坐标变换将椭圆转换为圆,从而简化问题的求解过程。这种方法主要适用于处理椭圆与直线的关系以及椭圆中的弦...
在文档"程序设计思路.docx"中,主要探讨了三个重要的数值积分算法的实现:复化梯形求积、复化Simpson求积和Romberg求积。这些算法常用于解决数学上的连续函数积分问题,尤其是在实际应用中,当解析求解不可能或者...
总结来说,***递归法求阶乘的思路展示了如何在.NET环境中实现递归算法,它简洁明了地表达了递归的基本概念和实现方式。但是,由于递归的效率和栈空间的问题,开发者在设计程序时应根据具体情况谨慎选择递归或迭代...
为了让孩子们更好地理解和解决数学问题,教师和家长通常会教授一些实用的解题思路。这其中,“小学数学常用的十一种解题思路”就是一种非常重要的学习工具,它不仅有助于学生在数学学习中取得进步,还能在日常生活中...
- **题目描述**:求两个数 m 和 n 的最大值和最小值。 - **解题思路**: - 使用三元运算符 `(a > b) ? a : b` 来快速计算出最大值或最小值。 #### 7. 字符统计 - **题目描述**:统计输入字符串中英文字母的出现...
在立体几何中,求线面角是常见的问题,对于这类问题,有多种解决策略。本文通过2009年XX卷理科第18题为例,探讨了三种求解线面角的常见方法,并对这些方法进行了比较分析。以下是每种方法的详细介绍: 1. 直接作出...
《解决椭圆部分问题的新思路——化椭为圆》 椭圆是数学中重要的曲线之一,其几何特性丰富,但在处理涉及椭圆的特定问题时,传统的解法往往较为复杂。本文提出了一种创新的思路——化椭为圆,旨在简化椭圆问题的求解...
小学数学的解题思路是培养学生逻辑思维和问题解决能力的关键,常见的十一种解题思路包括直接思路、顺向综合思路和逆向分析思路等。这些方法帮助学生在面对各种数学问题时能找到有效的解决路径。 首先,直接思路是最...
逆向分析思路的核心是,从问题的结果出发,反向推理出解决问题所需的条件。这种思路通常适用于那些直接解法难以入手的问题。以两船相遇位置变化的问题为例,我们从最终相遇点的差值出发,逆向推理出两次相遇的时间...
这是一个典型的贪心算法问题,解决思路是将金额转换为整数,然后使用贪心算法来寻找最少的钞票组合。 在这个问题中,使用了C++语言的基本知识,包括数组、循环、条件语句等。同时,这个问题也考察了程序员对贪心...
常见的解题思路有直接思路和逆向分析思路,这两种方法在解决不同类型的数学问题时各有优势。 **直接思路**,也称为常规思路,主要依赖于分析、综合和归纳等逻辑推理方法,直接寻找解决问题的路径。例如在例1中,...
这些角的定义和求解方法对于理解和解决空间几何问题至关重要。 1. **异面直线所成的角** 异面直线是指在同一个三维空间中既不相交也不平行的两条直线。它们所成的角的范围是0°到90°之间。求异面直线所成的角通常...
- **问题描述**: 给定一个由非负整数组成的三角形,要求从顶点出发,每一步可以选择向左下或右下移动,直到到达最底层,并求出沿路径数值总和的最大值。 - **状态定义**: 设定状态\( d(i, j) \)表示从位置\((i, j)\)...
- **求效率**:强调提高工作效率,快速响应用户需求,提升用户满意度。 #### 运维工作原则 - **规范化原则**:强调规范化的重要性,认为规范化是有效执行、落实和资源调度的基础,有助于控制运维风险。 - **合理化...
这要求运维团队不仅要有扎实的技术基础,还需要有明确的工作思路和理念。 【运维工作目标】 运维工作的首要目标是提高用户满意度。这意味着运维团队需要深入了解用户需求,及时响应用户的问题,提供贴心且高效的...
### 中文问题解决方法集会知识点总结 #### 一、背景与概述 在Java开发过程中,尤其是使用JSP(Java Server Pages)进行Web应用开发时,开发者经常会遇到中文乱码的问题。这些问题主要出现在JSP页面的显示、表单数据...