1.代码

import java.io.Serializable;
import java.util.NavigableMap;
import java.util.Random;
import java.util.TreeMap;public class Zifp_gen implements Serializable {private Random random = new Random(0);NavigableMap<Double, Integer> map;private static final double Constant = 1.0;public  Zifp_gen(int nums, double skewness) {// create the TreeMapmap = computeMap(nums, skewness);}//size为rank个数,skew为数据倾斜程度, 取值为0表示数据无倾斜,取值越大倾斜程度越高private static NavigableMap<Double, Integer> computeMap(int size, double skew) {NavigableMap<Double, Integer> map =new TreeMap<Double, Integer>();//总频率double div = 0;//对每个rank,计算对应的词频,计算总词频for (int i = 1; i <= size; i++) {//the frequency in position idiv += (Constant / Math.pow(i, skew));}//计算每个rank对应的y值,所以靠前rank的y值区间远比后面rank的y值区间大double sum = 0;for (int i = 1; i <= size; i++) {double p = (Constant / Math.pow(i, skew)) / div;sum += p;map.put(sum, i - 1);}return map;}//    public int next() {         // [1,n]
//        double value = random.nextDouble();
//        //找最近y值对应的rank
//        return map.ceilingEntry(value).getValue() + 1;
//    }

}

2.test

import java.util.NavigableMap;public class Test {public static void main(String args[]){Zifp_gen z1=new Zifp_gen(100,1.0);for (NavigableMap.Entry<Double, Integer> entry : z1.map.entrySet()) {System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());}}}

原Zipf齐夫分布及Java实现

zipf数据写入外部文本

public class Test {public static void main(String args[]) throws IOException{Zifp_gen z1=new Zifp_gen(100,0.5);PrintWriter pw=new PrintWriter(new FileWriter("F:\\zipf_100_0.5.txt"));for (NavigableMap.Entry<Double, Integer> entry : z1.map.entrySet()) {// System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());// String str="Key = " + entry.getKey() + ", Value = " + entry.getValue();String str= entry.getKey() + " " ;pw.println(str);}pw.close();}}

转载于:https://www.cnblogs.com/moonlightml/p/9982240.html

Java生成-zipf分布的数据集(自定义倾斜度,用作spark data skew测试)相关推荐

  1. 采用蒙特卡罗方法生成zipf分布随机数据

    #include <stdlib.h> #include <math.h> #include <sys/time.h> #include<stdio.h> ...

  2. java生成二维码,自定义宽高和边框大小

    下面封装的两个方法, url地址是http://开头的要不然浏览器没办法直接跳转 宽高都是一个数 wh 边框 margin 0是没有边框 ,1是最小边框 返回值 BufferedImage 类型的数据 ...

  3. 使用Java反射(Reflect)、自定义注解(Customer Annotation)生成简单SQL语句

    使用Java反射(Reflect).自定义注解(Customer Annotation)生成简单SQL语句 这次给大家介绍一下在Java开发过程中 使用自定义注解开发: 主要知识点:          ...

  4. R语言使用rnorm函数基于不同的均值、方差参数生成正太分布的随机数、使用plot函数和density函数可视化正太分布的随机数对应的密度图、自定义设置均值和方差

    R语言使用rnorm函数基于不同的均值.方差参数生成正太分布的随机数.使用plot函数和density函数可视化正太分布的随机数对应的密度图.自定义设置均值和方差(Normal distributio ...

  5. Java自定义导出列_后台生成EXCEL文档,自定义列

    后台生成EXCEL文档,自定义列 //response输出流处理 //设置编码.类型.文件名 getResponse().reset(); getResponse().setCharacterEnco ...

  6. java 生成 pdf html转pdf 支持 中文 自定义模板

    java 生成pdf DEMO 开发过程中遇到的坑 /** * 切记 css 要定义在head 里,否则解析失败 * css 要定义字体 * 字体中英文 https://www.cnblogs.com ...

  7. java生成指数分布随机数_生成特定分布随机数的方法

    生成随机数是程序设计里常见的需求.一般的编程语言都会自带一个随机数生成函数,用于生成服从均匀分布的随机数.不过有时需要生成服从其它分布的随机数,例如高斯分布或指数分布等.有些编程语言已经有比较完善的实 ...

  8. java生成skp缩略图,目录下SketchUp文件联系表(自定义尺寸的缩略图集)怎样制作?...

    百度 '批量生成skp缩略图jpg图片-ruby代码' 批量生成Skp缩略图Jpg图片-Ruby代码 渲染·后期·输出 BY SKETCHUP 不需要装什么软件, 草图大师SketchUp文件的缩略图 ...

  9. JAVA动态生成excel模板;列自定义下拉框赋值

    哈喽,2023大家开工大吉啊!财源滚滚! 业务需求:需要生成excel模板,且对部分列设置下拉框,进行动态赋值,效果如下: 拿上图举例:针对省这一列,不是填写,而是选择数据,也就是说我们生成excel ...

最新文章

  1. 【bzoj3524】Couriers——主席树
  2. 菜鸟教程python3-Python3 简介
  3. Ubuntu 20.04 E:无法找到软件包python-pip 安装python2.7
  4. JAVASCRIPT常用20种小技巧汇总
  5. centos7登陆mysql_Centos7安装Myql8.0并授权登录
  6. MYSQL常用查询函数
  7. 记 * 恢复ext4硬盘的数据
  8. 通过注册表永久禁用系统UAC功能
  9. 机器学习:AI数据集划分(训练集、验证集、测试集)
  10. Unity-CharacterController(角色控制器)
  11. h5 个推厂商消息 离线消息推送
  12. TGRS2020/云检测:Deep Matting for Cloud Detection in Remote Sensing Images深度抠图在遥感图像云检测中的应用
  13. 【单片机毕业设计】【mcuclub-jj-010】基于单片机的饮水机的设计
  14. 拨开迷雾 看见vivo穿越周期的秘密
  15. python 生成word表格(合并单元格)
  16. matlab去除图像背景,从图像中移除背景(首选MATLAB、Java或Python)
  17. 正态分布,最大值是多少,就是两边的极值?
  18. python培训实习报告
  19. BZOJ 5010: [Fjoi2017]矩阵填数
  20. 软考之计算机系统基础知识

热门文章

  1. centos 6 尝鲜纪实 - PH67A/P67A 主板安装
  2. 如何给网站安装SSL证书?
  3. UtoVR Player免费360VR视频播放器
  4. 辐射到达遥感探测器的各种路径
  5. 为什么“false == []”和“false == ![]”都返回true?
  6. 安装win 11 需要跳过检测所需替换appraiserres.dll文件
  7. 使用hiredis存储数组元素
  8. 2021.11.3SpaceWar
  9. SpringBoot系统整理|基础篇|黑马视频
  10. python面试大全 萧井陌_有多少人按@萧井陌大神给出的Python+Flask路线找到工作了?...