c语言鞋,C语言问题,鞋子就是10双鞋其中每2双鞋是一种,随机抽出4只鞋,至少能配成一双的概率,用C语言程序...

满意答案

dcebd7a0de6265b6ccae5ead692f1eab.png

xu1844

2016.09.18

dcebd7a0de6265b6ccae5ead692f1eab.png

采纳率:50%    等级:12

已帮助:7335人

组合数学忘光了,想不起来公式了。用穷举法算:统计至少配成一双的取法数,然后除以总取法数。#include 

int isPair(int i, int j, int k, int l);

int isPair(int a, int b);

int main() {

int SHOES_COUNT = 20; // 鞋子数

int i, j, k, l; // 取哪四只鞋

long total = 0; // 总取法数

long c = 0; // 至少能配成一双的取法数

// 鞋子编号 0,1,2,...,19

// 0,1,2,3为第1种鞋,4,5,6,7为第2种鞋,...,16,17,18,19为第5种鞋

// 偶数编号0,2,...,18为左脚,奇数编号1,3,...,19为右脚

// 如果4只鞋中有任意2只是同一种鞋并且分别为左右脚,则至少能配成一双

for (i = 0; i 

for (j = 0; j 

for (k = 0; k 

for (l = 0; l 

if (i != j && i != k && i != l && j != k && j != l && k != l) {

total++;

if (isPair(i, j, k, l)) {

c++;

}

}

}

}

}

}

printf("至少能配成一双的概率:%f\n", (double) c / total);

return 0;

}

int isPair(int i, int j, int k, int l) {

return isPair(i, j) || isPair(i, k) || isPair(i, l) || isPair(j, k)

|| isPair(j, l) || isPair(k, l);

}

int isPair(int a, int b) {

return (a / 4 == b / 4) && (a % 2 != b % 2) ? 1 : 0;

}追问: 谢了,可以运行吗

追答:可以运行。

追问: 还能帮个忙吗

追问: 问: [image]30 问: C语言大神来,52张扑克牌中任取四张可以算24点的概率。出去大小王,用程序编程做出来,C语言

00分享举报

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值