总结:妹纸不是那么会表述,如有不妥之处,请提出来 package com.sads; //杰伦的世界 //实现在0-100个数中,随机输出数每行10个数,也就是10行10列,这些数在0---到9之间 public class Dds { public static void main(String[] args) { int a[] = new int[100]; for (int i = 0; i < 100; i++) {// 这个括号里的10,很重要,因为要输出每行10个数,所以就要为10
import java.util.Random; public class RandomTest { public static void main(String[] args) { int max=20; int min=10; Random random = new Random(); int s = random.nextInt(max)%(max-min+1) + min; System.out.println(s); } } random.nextInt(max)表示生成[0,max]
一种是Brute force,O(nlogn) 另一种是找规律O(n),见http://hawstein.com/posts/20.4.html 当某一位的数字小于2时,那么该位出现2的次数为:更高位数字x当前位数 当某一位的数字大于2时,那么该位出现2的次数为:(更高位数字+1)x当前位数 当某一位的数字等于2时,那么该位出现2的次数为:更高位数字x当前位数+低位数字+1 package Hard; /** * Write a method to count the number of 2s
若已知生成0~6的rand7(),求生成0~4的rand5(),则一个方法就是不断生成0~7的数,直到这个数满足0~4就返回. int rand5(){ int res; do{ res = rand7(); }); return res; } 现在已知生成0~4的rand5(),求解生成0~6的rand7(),就是想办法利用rand5()去生成0~大于6的数字,可以使用rand5()+rand5()*5,这个式子可以生成0~24的随机数,每个数字的组成只有一种可能,所以是等概率地生成0~24里
总结:不敢爱你么开口 package com.sads; ///实现随机输出100个数字,数字是0到9之间,每行输出10个 public class Wss { public static void main(String[] args) { int a[] = new int[100]; for (int i = 0; i < 100; i++) { a[i] = (int) (Math.random() * 10); } for (int i = 0; i < 100; i++) { if