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();
NavigableMap<Double, Integer> map;
private static final double Constant = 1.0; public Zifp_gen(int nums, double skewness) {
// create the TreeMap
map = 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 = ;
//对每个rank,计算对应的词频,计算总词频
for (int i = ; i <= size; i++) {
//the frequency in position i
div += (Constant / Math.pow(i, skew));
}
//计算每个rank对应的y值,所以靠前rank的y值区间远比后面rank的y值区间大
double sum = ;
for (int i = ; i <= size; i++) {
double p = (Constant / Math.pow(i, skew)) / div;
sum += p;
map.put(sum, i - );
}
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(,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();
}
}

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

  1. PoiDocxDemo【Android将表单数据生成Word文档的方案之二(基于Poi4.0.0),目前只能java生成】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 这个是<PoiDemo[Android将表单数据生成Word文档的方案之二(基于Poi4.0.0)]>的扩展,上一篇是根 ...

  2. Java生成短链接

    为什么要生成短链接 微博之所以要是使用短链接,主要是因为微博只允许发140 字,如果链接地址太长的话,那么发送的字数将大大减少. 那么使用短链接的作用有哪些呢?1.字数,2.统计,3.监控,4.过滤 ...

  3. POI以SAX方式解析Excel2007大文件(包含空单元格的处理) Java生成CSV文件实例详解

    http://blog.csdn.net/l081307114/article/details/46009015 http://www.cnblogs.com/dreammyle/p/5458280. ...

  4. java 生成二维码、可带LOGO、可去白边

      1.准备工作 所需jar包: JDK 1.6: commons-codec-1.11.jar core-2.2.jar javase-2.2.jar JDK 1.7: commons-codec- ...

  5. 使用Java生成word文档(附源码)

    当我们使用Java生成word文档时,通常首先会想到iText和POI,这是因为我们习惯了使用这两种方法操作Excel,自然而然的也想使用这种生成word文档.但是当我们需要动态生成word时,通常不 ...

  6. springboot搭建项目,实现Java生成随机图片验证码。

    这篇文章主要介绍了如何通过Java如何生成验证码并验证.验证码的作用我想必大家都知道,话不多说开始实施! 首先创建一个springboot项目以下是项目结构,内有utli工具类.存放生成图片验证码方法 ...

  7. JAVA生成EXCEL模板

    JAVA生成excel模板,支持1.必填字段前加 红色 * 2.定义可选值下拉列表 valList3.定义名称并通过名称设置可选值 refName(名称在sheet2,sheet2自动隐藏)4.支持设 ...

  8. Java生成和操作Excel文件(转载)

    Java生成和操作Excel文件   JAVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该A ...

  9. 利用JAVA生成二维码

    本文章整理于慕课网的学习视频<JAVA生成二维码>,如果想看视频内容请移步慕课网. 维基百科上对于二维码的解释. 二维条码是指在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图 ...

随机推荐

  1. POJ3211(trie+01背包)

    Washing Clothes Time Limit: 1000MS   Memory Limit: 131072K Total Submissions: 9384   Accepted: 2997 ...

  2. moco实例

    一.moco模拟接口响应json moco的下载地址见虫师博客园:https://www.cnblogs.com/fnng/p/7511539.html foo.json文件内容如下 [ { &quo ...

  3. mina框架之---服务端NioSocketAcceptor的学习

    接上一讲对mina的简单应用和对mina服务端和客户端中几个重要的技术知识点的理解后,今天着重对mina服务端的NioSocketAcceptor 进行学习. 说这个玩意之前,先整体上看一下在mina ...

  4. 爬虫库之BeautifulSoup学习(三)

    遍历文档树: 1.查找子节点 .contents tag的.content属性可以将tag的子节点以列表的方式输出. print soup.body.contents print type(soup. ...

  5. A - Mike and Cellphone

    While swimming at the beach, Mike has accidentally dropped his cellphone into the water. There was n ...

  6. studio 集成 Genymotion后打开模拟器出错、打开虚拟机VirtualBox出错

    好吧,首先给出错误类型如下: “Unable to load R3 module D:\Program Files\VirtualBox/VBoxDD.DLL (VBoxDD): GetLastErr ...

  7. PHP实用小程序(二)

    <HTML> <HEAD> <TITLE>经典循环例子</TITLE> </HEAD> <BODY> <? ; $coun ...

  8. 使用fastadmin的页面异常模板

    1.效果图 2.修改tp异常页面的模板文件( /thinkphp/tpl/think_exception.tpl ),将文件中的内容全部替换成下面的内容然后保存即可(若发生报错,请注意语言包问题) & ...

  9. P4593 [TJOI2018]教科书般的亵渎(拉格朗日插值)

    传送门 首先所有亵渎的张数\(k=m+1\),我们考虑每一次使用亵渎,都是一堆\(i^k\)之和减去那几个没有出现过的\(j^k\),对于没有出现过的我们可以直接快速幂处理并减去,所以现在的问题就是如 ...

  10. kafka 安装部署

    环境:ubuntu 12.04 64位桌面版 解压kafka -0.10.0.0.tgz -C /root/software/ 进入目录 cd kafka_2.-0.10.0.0/ 创建data 目录 ...