草庐IT

随机整数

全部标签

Java:在巨大的磁盘文件上进行随机读取的最快方法

我有一组中等大小的数据,大约800MB左右,这基本上是一些大型的预计算表,我需要将一些计算速度提高几个数量级(创建该文件需要数个多核计算机几天才能生成)使用优化的多线程算法...我真的需要那个文件)。现在已经计算了一次,那800MB的数据是只读的。我无法记住它。到目前为止,它是一个800MB的巨大文件,但如果有帮助,拆分成更小的文件不是问题。我需要花很多时间在该文件中到处读取大约32位的数据。我事先不知道我需要在哪里读取这些数据:读取是均匀分布的。在Java中随机读取这样一个或多个文件的最快方法是什么?理想情况下,我应该从几个不相关的线程中进行这些读取(但如果需要,我可以在单个线程中对

java - 如何使 IvParameterSpec 随机但仍然解密

对于Java中的加密...http://cwe.mitre.org/data/definitions/329.html上的文章指出初始化vector每次都应该不同,但如果我使用与加密时不同的IV进行解密,我会得到垃圾字符而不是我预期的数据。在一台服务器上加密并在另一台服务器上解密而无需在服务器之间来回传递IV的正确方法是什么?常见的技术似乎是硬编码一个字节数组,但据说这是不安全的??? 最佳答案 我相信IV就像盐一样-它不是secret,它只是用来引入额外的随机性元素,这样用相同key加密的相同消息每次仍然会出现不同的结果.因此,您

Java将哈希值转换为随机字符串

我正在尝试开发一个在彩虹表生成器中使用的缩减函数。缩减函数背后的基本原理是它接受一个散列,执行一些计算,并返回一个特定长度的字符串。目前我正在使用SHA1哈希,我需要返回一个长度为三的字符串。我需要由以下任意三个随机字符组成的字符串:abcdefghijklmnopqrstuvwxyz0123456789我面临的主要问题是我编写的任何归约函数总是返回已经生成的字符串。一个好的归约函数只会很少返回重复的字符串。任何人都可以就实现此目标的方法提出任何想法吗?或者任何关于哈希到字符串操作的建议都会很棒。提前致谢乔希 最佳答案 听起来您需要

java - 使用显式类型转换将十六进制整数转换为字符?

我编写了以下代码,但是o/p不是预期的?有人指导我吗?问题:编写一个示例程序来声明一个十六进制整数并使用显式类型转换将其转换为一个字符?classhexa{publicstaticvoidmain(Stringar[]){inthex=0xA;System.out.println(((char)hex));}}请告诉我:为什么输出有差异/*code1*/inthex=(char)0xA;System.out.println(hex);/*code2*/inthex=0xA;System.out.println((char)hex); 最佳答案

java - 两个整数的 Mod 除法

我不断收到错误消息“运算符%对于参数类型Integer、Integer未定义”我不太确定为什么会这样。我认为,由于模除法不能返回小数,因此具有整数值就可以了。这是在我正在创建的程序中的一个方法中发生的。代码如下:publicvoidaddToTable(Integerkey,Stringvalue){Entrynode=newEntry(key,value);if(table[key%tableSize]==null)table[key%tableSize]=node;}方法未完成但错误发生在if(table[key%tableSize]==null)和table[key%tableS

java - 从Java中的Bigdecimal中提取整数和小数部分

我想从java中的bigdecimal中提取整数部分和小数部分。我为此使用了以下代码。BigDecimalbd=BigDecimal.valueOf(-1.30)StringtextBD=bd.toPlainString();System.out.println("length="+textBD.length());intradixLoc=textBD.indexOf('.');System.out.println("Fraction"+textBD.substring(0,radixLoc)+"Cents:"+textBD.substring(radixLoc+1,textBD.le

java - 生成 '1'位比例可变的随机二进制数

我需要一个函数来生成随机整数。(现在假定Javalong类型,但稍后将扩展为BigInteger或BitSet。)棘手的部分是有一个参数P指定结果中任何位为1的(独立)概率。如果P=0.5,那么我们可以只使用标准随机数生成器。P的一些其他值也很容易实现。这是一个不完整的例子:Randomrandom=newRandom();//...longnextLong(floatp){if(p==0.0f)return0L;elseif(p==1.0f)return-1L;elseif(p==0.5f)returnrandom.nextLong();elseif(p==0.25f)returnn

java - 将 double (或 float )转换为整数时会发生什么?

我正在练习一些简单的2D游戏编程,并提出了一个理论,即在动画期间(图像位置的实际变化最好用float计算)。我有一种感觉,如果你用整数移动图像,动画就不会那么流畅。在Java中,您似乎无法使用float绘制图像来为图像指定位置。但是显然,当您最初声明您的x和y时,您可以将它们声明为Double或Float,并且当涉及到实际绘制图像时,您必须转换他们到整数。就像我发现HERE:/***Drawthisentitytothegraphicscontextprovided**@paramgThegraphicscontextonwhichtodraw*/publicvoiddraw(Grap

java - JFreeChart 在 Y 轴上将整数值显示为 float

我正在使用JFreeChart创建时间序列图表,但是当我将整数值作为Y轴传递时,它显示为float!!有什么问题?我正在创建这样的图表:this.TodaySeriesGoldPrice=newTimeSeries("Price",Minute.class);if(TDD!=null){for(MapD:TDD){CalendarC=Calendar.getInstance();C.setTime(newDate((Long)D.get("timestamp")));this.TodaySeriesGoldPrice.add(newMinute(C.get(Calendar.MINUT

java - Java中日期到整数的转换

我有一个带有以下内容的int变量。我怎样才能将它转换为Date对象,反之亦然。intinputDate=20121220; 最佳答案 将值转换为String并使用SimpleDateFormat将其解析为Date对象:intinputDate=20121220;DateFormatdf=newSimpleDateFormat("yyyyMMdd");Datedate=df.parse(String.valueOf(inputDate));反之亦然,但不是使用parse,使用format,并将生成的String转换为Integer:S