jlibs.core.util.RandomUtil Maven / Gradle / Ivy
/**
* Copyright 2015 Santhosh Kumar Tekuri
*
* The JLibs authors license this file to you under the Apache License,
* version 2.0 (the "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*/
package jlibs.core.util;
/**
* @author Santhosh Kumar T
*/
public class RandomUtil{
public static double random(double min, double max){
// see http://stackoverflow.com/a/9724775
return Math.random()<0.5
? ((1-Math.random()) * (max-min) + min)
: (Math.random() * (max-min) + min);
}
public static float random(float min, float max){
// see http://stackoverflow.com/a/9724775
return Math.random()<0.5
? (float)((1-Math.random()) * (max-min) + min)
: (float)(Math.random() * (max-min) + min);
}
public static long random(long min, long max){
return Math.round(min+Math.random()*(max-min));
}
public static int random(int min, int max){
return (int)Math.round(min+Math.random()*(max-min));
}
public static short random(short min, short max){
return (short)Math.round(min+Math.random()*(max-min));
}
public static byte random(byte min, byte max){
return (byte)Math.round(min+Math.random()*(max-min));
}
public static boolean randomBoolean(){
return Math.random()<0.5d;
}
public static boolean randomBoolean(Boolean bool){
if(Boolean.TRUE.equals(bool))
return true;
else if(Boolean.FALSE.equals(bool))
return false;
else // random either 0 or 1
return randomBoolean();
}
}