问题 解答题

有3名男生,4名女生,在下列不同要求下,求不同的排列方法总数:

(1)选其中5人排成一排;

(2)排成前后两排,前排3人,后排4人;

(3)全体排成一排,甲不站在排头也不站在排尾;

(4)全体排成一排,女生必须站在一起;

(5)全体排成一排,男生互不相邻;

(6)全体排成一排,甲、乙两人中间恰好有3人.

答案

(1)2520(种)  (2)5040(种)  (3)3600(种)

(4)576(种)  (5)1440(种)  (6)720(种)

本题考查了有限制条件的排列问题.

(1)从7个人中选5个人来排列,有=2520(种).

(2)分两步完成,先选3人排在前排,有种方法,余下4人排在后排,有种方法,故共有·=5040(种).事实上,本小题即为7人排成一排的全排列,无任何限制条件.

(3)(优先法)甲为特殊元素.先排甲,有5种方法;其余6人有种方法,故共有5×=3600(种).

(4)(捆绑法)将女生看成一个整体,与3名男生在一起进行全排列,有种方法,再将4名女生进行全排列,也有种方法,故共有×=576(种).

(5)(插空法)男生不相邻,而女生不作要求,∴应先排女生,有种方法,再在女生之间及首尾空出的5个空位中任选3个空位排男生,有种方法,故共有×=1440(种).

(6)把甲、乙及中间3人看作一个整体 ,第一步先排甲、乙两人有种方法,再从剩下的5人中选3人排到中间,有种方法,最后把甲、乙及中间3人看作一个整体,与剩余2人排列,有种方法,故共有××=720(种).

问答题

请完成程序,首先由一个类simple实现Serializable接口,并有三个成员变量,分别为int型、double型和String型,可以用toString的方法显示这三个成员变量。在main方法中创建这个simple的持久对象,根据用户在命令行输入的三个参数来设定其中成员变量的值。然后,将这个对象写入名为TheSerial.data的文件中,并显示成员变量。最后从文件TheSerial.data中读出三个成员变量并显示出来。
注意:请勿修改main()主方法和其他已有语句内容,仅在横线处填入适当语句。
import java.io.*;
class TheSerial implements Serializable

private int intvalue;
private double doublevalue;
private String string;
The Serial ()

intvalue=123;
doublevalue=12.34;
string="Serialize Test";

public void setDouble(double d)

doublevalue=d;

public void setInt(int i)

intvalue=i;

public void setString(String s)

string=s;

public String to String()

return("int="+intvalue+" double="+doublevalue+" string="+string);


public class simple

public static void main(String[] args)

The Serial e1=new TheSerial();
TheSerial e2;
try

e1.setInt(Integer.parseInt(args[0]));
e1.setDouble(Double.parseDouble(args[1]));
e1.setString(args[2]);

catch(Exception e)

e1.setString(e.getMessage());

System.out.println(e1);
try

FileOutputStream oS=new FileOutputStream("TheSerial.data");
ObjectOutputStream oOS=new ObjectOutputStream(oS);
______;

catch(IOException ioException)

System.out.println (ioException.getMessage ());

try

FileInputStream iS=new FileInputStream("TheSerial.data");
ObjectInputStream oIS=new ObjectInputStream(iS);
______;
System.out.println(e2);

catch(IOException ioException)

System.out.println(ioException.getMessage());

catch(ClassNotFoundException cnfException)

System.out.println(cnfException.getMessage());


问答题 简答题