第一题
第二题
第二题中,两女生在左边情况只有6种,不是9种,所以答案是:
6*2*6*6=432
算法描述:
假设有n个条件,定义一个长度为n的数组存储n个条件的逻辑值。使用循环逐个判断条件,将各个条件的逻辑结果存储在对应的数组元素中。扫描数组,根据数组下标输出对应的结果。
C语言程序:
#include
#include
#include
#define N 10
void main()
{
int condictions[N]; //模拟N个条件
int results[N]; //存储N个条件的逻辑值,1:成立,0:不成立
int i;
//初始化随机数产生器
srand((unsigned)time(NULL));
for(i=0; i{
//获得一个随机数
condictions[i] = rand();
//随机数不小于16383即表示条件成立,否则表示条件不成立
results[i] = (condictions[i] >= 16383 ? 1 : 0);
}
printf("输出结果列表:");
for(i=0; i{
if(results[i] == 1)
{
printf("%c ", 'a' + i);
}
}
printf("\n");
}
运行测试1:
输出结果列表:b d e f h j
运行测试2:
输出结果列表:f g i
运行测试3:
输出结果列表:b c d g h i
设有二个女生在老师的左边,有A(3,2)种排法,而她们的位置有2种排法。左边剩余的一个位置,可以从3个男生中的任一个选取,有A(3,1)种取法,右边的3个位置,从剩下的3人中排列,共有A(3,3)种。
二个女生在老师的右边,排列方法也是一样的。
所以,总的排列数为:
2·2A(3,2)A(3,1)A(3,3)=432种。
用代数形式书写如下: