有一组优惠 A-20优惠, B-30元优惠, C-5元优惠 当用户满足条件时随机返回一个优惠;在活动预算一定的情况下需要保证C类优惠券中奖概率最高,B类优惠券最低;以下是权重的实现;
/** * Copyright 2014-2015, , Inc. All Rights Reserved. * * Date: 2016年1月23日 */ package org.demo.core; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; /*** * * Desc:TODO * * @author zhangwei<wei.zw@corp.netease.com> * @since 2016年1月23日 下午1:35:16 * @version v 0.1 */ public class WeightRandomTest { private static Map<Double, String> weightMapping = new HashMap<>(); static { weightMapping.put(30d, "A"); weightMapping.put(20D, "B"); weightMapping.put(50D, "C"); } public static void main(String[] args) { int c = 0; int a = 0; int b = 0; for (int i = 0; i < 2000000; i++) { String str = WeightRandomUtil.getWeightRandom(weightMapping); if ("A".equals(str)) { a++; } else if ("B".equals(str)) { b++; } else if ("C".equals(str)) { c++; } } System.out.println(c / 2000000d); System.out.println(b / 2000000d); System.out.println(a / 2000000d); } } class WeightRandomUtil { /*** * 计算权重总和 * * @param weightArrays * @return * @author zhangwei<wei.zw@corp.netease.com> */ private static double weightSum(Set<Double> weights) { double weightSum = 0; for (double weightValue : weights) { weightSum += weightValue; } return weightSum; } /*** * * * @param weightArrays * 权重数组 * @return 返回数据 * @author zhangwei<wei.zw@corp.netease.com> * @param <T> */ public static <T> T getWeightRandom(Map<Double, T> weightValueMapping) { double weightSum = weightSum(weightValueMapping.keySet()); double stepWeightSum = 0; List<Double> list = new ArrayList<>(weightValueMapping.keySet()); Collections.sort(list, new Comparator<Double>() { @Override public int compare(Double o1, Double o2) { return (int) (o2 - o1); } }); double r = Math.random(); for (double weight : list) { // 计算权重值 stepWeightSum += weight; // 如果随机数落在了权重区间则返回索引值 if (r <= stepWeightSum / weightSum) { return weightValueMapping.get(weight); } } return null; } }
相关推荐
算法采用去除速度项的粒子群简化结构,通过随机分布的方式获取惯性权重提高新算法的局部搜索和全局搜索能力,并且学习因子采用异步变化的策略来改善粒子的学习能力。考虑到个体之间的相互影响关系,每个粒子的个体...
主要介绍了Java实现按权重随机数,本文给出了提出问题、分析问题、解决问题三个步骤,需要的朋友可以参考下
利用不完全的准则权重,通过规划模型求解,获取各方案在各自然状态下的加权记分函数值与加权精确函数值的区间,利用不完全的状态概率,得到各方案的记分函数期望值与精确函数期望值的区间,根据决策者风险偏好水平,...
对于您添加的每个值,几率可以是您想要的 0 到 1 之间的任何值,但在您尝试获取值之前,提供的所有权重的总和必须加起来为 1,以便保证有一个值出现背部。 添加所有权重后,使用 GetNext 方法获取下一个值。
对于您添加的每个值,几率可以是您想要的 0 到 1 之间的任何值,但在您尝试获取值之前,提供的所有权重的总和必须加起来为 1,以便保证有一个值出现背部。 添加所有权重后,使用 GetNext 方法获取下一个值。
此控制器获取有关子元素的信息,并提供对它们的相对权重的管理。相对权重表示在线程迭代期间执行子元素的频率。请注意,每个线程都有独立的迭代计数器。 映射到子名称的相对权重,即使子名称的顺序已更改,也会保存...
神经网络权重初始化神经网络中的权重初始化技术•权重初始化:•建立基本的神经网络有点令人费解,最重要的是调优它以获得更好的结果是一件繁琐的工作,... 一个可教的神经网络将在学习开始之前将权重和偏差值随机化
针对具有正态三角模糊随机变量且属性权重未知的多属性决策问题, 提出基于前景均值-方差(M-V) 准则的正态三角模糊随机多属性决策方法. 该方法首先构建正态三角模糊随机决策矩阵, 进而通过运算得到属性值的期望与方差,...
本文设计了一种新颖的人脸识别方法,该方法主要基于一种新的特征提取方法和一种有效的分类器-随机权重网络(RWN)。 其特征提取的创新体现在原始图像的几何特征和代数特征的良好融合中。 这里的几何特征是通过快速...
然后生成一个介于0和所有权重之和之间的随机数,进行线性搜索以在离散CDF数组中找到该随机数,并获取与该条目对应的值-这是加权随机数。 安装 npm install weight-random 用法 import { random } from 'weight-...
本文将为每条数据提供价值,这取决于该数据的重要性(每条数据均由两个参数的大小和值定义),并且该方法试图找到从源到目标的最佳路径,一个数学模型可以根据0-1背包问题调整最短路径之间的数据流。 我们还将分别...
与梯度下降法比较: 用选定的值初始化权重后,我们发现适合LMS。 现在,当我们使用批处理学习在梯度下降方法上训练数据时,我们发现在一个时期之后,我们获得的权重与最佳权重非常接近。 我们可以在这里停止以获得...
Boosting算法(提升法)指的是迭代算法,核心思想是对训练样本进行k次迭代,每次迭代形成一个弱学习器,然后根据学习误差对分类错误的样本加大训练权重,形成新的带有权重的训练集,训练形成新的弱学习器;...
用于随机优化的 Java 库。 包括几个玩具问题和实验线束。 开发此代码主要是为了支持我在乔治亚理工学院注册 CS7641。 它支持爬山、模拟退火、遗传算法(可扩展的交叉/变异功能)以及围绕 MIMIC 算法的 ABAGAIL ( ) ...
随机法:通过系统的随机算法,根据后端服务器的列表大小值来随机选取其中的一台服务器进行访问。 源地址哈希法:根据获取客户端的IP地址,通过哈希函数计算得到一个数值,用该数值对服务器列表的大小进行取模运算...
指纹库中落在此区间的所有位置点设平均权值,最后选取权重值最大者为待定位点的位置估计,如有相同权重值,则比较信号强度距离,取最小者,这种算法在一定程度上克服了RSSI 信号随机抖动对定位的影响,提高了定位的...
网格空间 v1.0.0 2008 - 根据艺术许可 2.0 命令 SPACE新建一行 o (开关),用于“返回原点模式”开/关 m (开关),用于“球模式”,如果它排斥或吸引 ... 注意:颜色是从这个调色板中随机获取的 可以
要求点:根据以下规范从头开始训练浅层网络:使用表1中所示的网络布局;由于输入图像的尺寸为64×64,因此您需要调整图像的尺寸以将其输入网络。请遵循简单的方法,分别沿x和y重新缩放整个图像,以获取合适的尺寸。...
根据信息系统期望输出和实际输出值,计算每个输出层误差函数偏置,并对各层之间权重进行更新,及时获取全局误差,由此实现网络危险信息源检测。通过仿真结果可知,该方法误检率较低,可如实反映网络复杂环境。
该制导律以神经网络控制理论为基础,采用同步扰动随机逼近(simultaneous perturbation stochastic approximation, SPSA)的方法对神经网络中的权重值进行估计,从而给出制导指令,完成制导律的设计过程。...