选人(组合数)

5049. 选人 - AcWing题库

#include<iostream>
using namespace std;
const int M=1005;
int n,m,h;
int a[M];
int main(void) {
    scanf("%d%d%d",&n,&m,&h);
    int s=0;
    for(int i=1; i<=m; i++) {
        scanf("%d",&a[i]);
        s+=a[i];
    }
    if(s<n) {
        printf("-1");
        return 0;
    }
    double res=1;
    for(int i=1; i<a[h]; i++) {
        res*=(double)(s-i-n+1)/(s-i);
    }
    printf("%lf",(double)1-res);
    return 0;
}
  1. 首先,代码使用scanf函数从标准输入读取三个整数n、m和h,分别表示需要的元素数量、数组a的大小以及用于计算概率的索引。
  2. 接着,代码定义了一个整型变量s,用于保存数组a中前m个元素的和。
  3. 通过一个for循环,代码读取数组a中前m个元素的值,并将它们累加到s中。
  4. 如果s小于n,则输出-1,表示无法满足需求,程序结束。
  5. 如果s大于等于n,则定义一个双精度浮点型变量res,初始值为1,用于保存概率值。
  6. 接下来,代码通过一个for循环计算概率值res。在循环中,res乘以(s-i-n+1)/(s-i)的值,其中i从1遍历到a[h]-1。
  7. 最后,代码输出1减去res的值,表示所求的概率。

总体来说,这段代码的功能是计算满足一定条件的概率值。根据输入的n、m和h,它计算出一个特定的概率,并输出结果。

UniApp 平台是一个跨平台的应用开发框架,可以用于开发同时运行在多个平台上的应用程序,包括小程序、H5、iOS 和 Android。对于选人组件,UniApp 提供了一些原生的选择器组件可以使用。 1. picker 组件:UniApp 提供了 picker 组件,可以用于选择单个或多个选项。你可以通过设置 mode 属性来控制选择器的类型,比如选择日期、时间、省市区等。示例代码如下: ```html <template> <view> <picker mode="selector" range="{{items}}" bindchange="bindPickerChange"> <view class="picker"> 当前选择:{{selectedItem}} </view> </picker> </view> </template> <script> export default { data() { return { items: ['选项1', '选项2', '选项3'], selectedItem: '' } }, methods: { bindPickerChange(e) { this.selectedItem = this.items[e.detail.value]; } } } </script> ``` 2. radio 组件:UniApp 还提供了 radio 组件,可以用于单选选项。示例代码如下: ```html <template> <view> <radio-group bindchange="bindRadioChange"> <label class="radio-label" wx:for="{{items}}" wx:key="{{index}}"> <radio value="{{item}}" checked="{{item === selectedItem}}"></radio> {{item}} </label> </radio-group> </view> </template> <script> export default { data() { return { items: ['选项1', '选项2', '选项3'], selectedItem: '' } }, methods: { bindRadioChange(e) { this.selectedItem = e.detail.value; } } } </script> ``` 以上是 UniApp 中选人组件的示例,你可以根据自己的需求进行修改和扩展。另外,UniApp 还提供了其他选择器组件,如 checkbox、switch 等,你可以根据具体需要选择适合的组件来实现选人功能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值