如果只是随机分配到4个位置,你就对每个数都产生一个1-4的随机数...然后按照abcd的顺序分配就好..如果对于ABCD的数据有限制.就要进行判断;.如你举的例子里面.因为B可能存在任何数,而ACD没有重复,所以对于任意一个数,B都有一半的概率.所以对于任意的数都先进行1-2随机数产生.1入B.如果是2则看这个数是什么,分别进入ACD
创新互联建站专注于当涂企业网站建设,成都响应式网站建设公司,商城网站建设。当涂网站建设公司,为当涂等地区提供建站服务。全流程按需网站开发,专业设计,全程项目跟踪,创新互联建站专业和态度为您提供的服务
java代码方法一如下:
int random=(int)(Math.random()*10+1)
java代码方法二如下:
package bdqn_Empy;
import java.util.Random;
public class Text {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int a=0;
Random b=new Random();
a=b.nextInt(101);
System.out.println(a);
}
}
扩展资料:
可以先通过 random方法生成一个随机数,然后将结果乘以10。此时产生的随机数字即为大于等于0小于10的数字。
然后再利用nt方法进行转换它会去掉小数掉后面的数字即只获取整数部分,不是四舍五入)。最后即可获取一个0到9的整数型随机数字。其实现方法很简单,就是对原有的 grandom方法按照如下的格式进行变型:(int( Math. Random0*10)即可。
其实我们还可以对这个方法进行扩展,让其产生任意范围内的随机数。至需要将这个10换成n即可,如改为( int(Math. Random0n)。此时应用程序就会产生一个大于等于0小与n之间的随机数。
如将n设置为5,那么其就会产生一个0到5之间的整数型的随机数。如果将这个写成一个带参数的方法,那么只要用户输入需要生成随机数的最大值,就可以让这个方法来生成制定范围的随机数。
import java.util.*;
public class a {
public static void main(String[] args) {
int i;
char c;
String[] a = {"座位1","座位2","座位3","座位4","座位5"};
/*生成座位list*/
ListString seat = new ArrayListString();
/*向其中添加座位*/
for(i = 0;i 5;i++){
seat.add(a[i]);
}
/*调用函数,将顺序打乱*/
Collections.shuffle(seat);
/*显示结果*/
for(i = 0,c = 'a'; c = 'e';c++,i++){
System.out.println("学生"+c+"坐在"+seat.get(i));
}
}
}
有问题追问我
关键就是产生随机数了。Math.random()函数可以用来产生0-1之间的随机数。后续的自己处理下就行了。
一、利用random方法来生成随机数。
在Java语言中生成随机数相对来说比较简单,因为有一个现成的方法可以使用。在Math类中,Java语言提供了一个叫做random的方法。通过这个方法可以让系统产生随机数。
二、通过Random类来生成随机数。
在Java语言中,除了可以通过random 方法来产生随机数之外,还可以通过一个random类来产生随机数。程序开发人员可以通过实例化一个Random对象来创建一个随机数的生成器。如 Random i=new Random()。通过这条语句就利用了Random类创建了一个随机数的生成器。数
三、产生随机的字符。
可以利用random方法来产生随机字符。如可以利用代码生成一个随机的小写字符:(char)(‘a’+Math.random()*(‘z’-‘a’+1))。其实这跟生成任意两个数之间的随机数类似。通过以上的代码就可以生成一个范围之内的任意随机字符。通过对这个代码进行适当的修整,还可以生成任意两个字符之间的随机字符与任意大写字符的随机字符。其转换的方式跟上面提到的任意范围之内的随机数类似。
下面来了解下随机数的运用:
在统计学的不同技术中需要使用随机数,比如在从统计总体中抽取有代表性的样本的时候,或者在将实验动物分配到不同的试验组的过程中,或者在进行蒙特卡罗模拟法计算的时候等等。
真正的随机数是使用物理现象产生的:比如掷钱币、骰子、转轮、使用电子元件的噪音、核裂变等等。这样的随机数发生器叫做物理性随机数发生器,它们的缺点是技术要求比较高。
在实际应用中往往使用伪随机数就足够了。这些数列是“似乎”随机的数,实际上它们是通过一个固定的、可以重复的计算方法产生的。计算机或计算器产生的随机数有很长的周期性。它们不真正地随机,因为它们实际上是可以计算出来的,但是它们具有类似于随机数的统计特征。这样的发生器叫做伪随机数发生器。
在真正关键性的应用中,比如在密码学中,人们一般使用真正的随机数。
C语言、C++、C#、Java、Matlab等程序语言和软件中都有对应的随机数生成函数,如rand等。
比如有十个糖果,按照2:3:5的比例分配给三个小孩
public class luck {
public static ListString candy = new ArrayListString();
public static ListString child1 = new ArrayListString();
public static ListString child2 = new ArrayListString();
public static ListString child3 = new ArrayListString();
// 2:3:5
public static void main(String[] args) {
candy.add("糖果1");
candy.add("糖果2");
candy.add("糖果3");
candy.add("糖果4");
candy.add("糖果5");
candy.add("糖果6");
candy.add("糖果7");
candy.add("糖果8");
candy.add("糖果9");
candy.add("糖果10");
int count = 10;
for (int i = 0; i 2; i++) {
int math = (int) (Math.random() * count);
child1.add(candy.get(math));
candy.remove(math);
count--;
}
for (int i = 0; i 3; i++) {
int math = (int) (Math.random() * count);
child2.add(candy.get(math));
candy.remove(math);
count--;
}
for (int i = 0; i 5; i++) {
int math = (int) (Math.random() * count);
child3.add(candy.get(math));
candy.remove(math);
count--;
}
System.out.println("child1的糖:");
for (int i = 0; i child1.size(); i++) {
System.out.println(child1.get(i));
}
System.out.println("child2的糖:");
for (int i = 0; i child2.size(); i++) {
System.out.println(child2.get(i));
}
System.out.println("child3的糖:");
for (int i = 0; i child3.size(); i++) {
System.out.println(child3.get(i));
}
}
}
输出结果:
child1的糖:
糖果6
糖果1
child2的糖:
糖果7
糖果2
糖果8
child3的糖:
糖果4
糖果3
糖果10
糖果5
糖果9