简单组合数学(二)

河海大学:招生目录里的数学一或数学二是什么梗? 大家好,我是陪你考研每一天的大巴学长。 提前祝大家端午节快乐! 今天大巴学长给大家聊聊河海大学招生目录里的初试科目:英语一或英语二,数学一或数学二是什么梗。 每年到这个考研选择学校的时候,大家看到河海大学招生目录里的上面的这些内容,想必都很疑惑。每年都有不少同学问招生目录里的数学一或数学二,英语一或英语二是什么意思?如果选择的不一样,到时候考研成绩怎么算?这样是不是不公平?下面学长就为大家统一说说这个情况。 首先,这个初试科目里的英语一或英语二,数学一或数学二,这是针对的专硕.. 阅读详情

一、分割序列

import java.util.*;
public class Main {
    static final long MOD = 1000000007L;
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        String s = sc.next();
        List<Integer> pos = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            if (s.charAt(i) == '1') {
                pos.add(i);
            }
        }
        if (pos.isEmpty()) {
            System.out.println(0);
            return;
        }
        long ans = 1;
        for (int i = 1; i < pos.size(); i++) {
            long diff = pos.get(i) - pos.get(i - 1);
            ans = ans * diff % MOD;
        }
        System.out.println(ans);
    }
}

运行结果

二、礼物清单

import java.util.Scanner;

public class Main {
    static final long MOD = 1000000007L;

    static long qpow(long a, long b, long mod) {
        long res = 1;
        a %= mod;
        while (b > 0) {
            if (b % 2 == 1) {
                res = res * a % mod;
            }
            a = a * a % mod;
            b >>= 1;
        }
        return res;
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        long n = sc.nextLong();
        long m = sc.nextLong();

        long base = qpow(2, m, MOD);
        base = (base - 1 + MOD) % MOD;
        long ans = qpow(base, n, MOD);
        System.out.println(ans);
    }
}

运行结果

三、矩形计数

import java.util.Scanner;

public class Main {
    static final int MOD = 1000000007;
    static final int MAX = 1000;
    static long[] pow2 = new long[MAX + 1];

    static void pre() {
        pow2[0] = 1;
        for (int i = 1; i <= MAX; i++) {
            pow2[i] = pow2[i - 1] * 2 % MOD;
        }
    }

    public static void main(String[] args) {
        pre();
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();
        int[][] a = new int[n][m];
        int[] row0 = new int[n];
        int[] row1 = new int[n];
        int[] col0 = new int[m];
        int[] col1 = new int[m];
        long totalSingle = 0;

        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                a[i][j] = sc.nextInt();
                if (a[i][j] == 0) {
                    row0[i]++;
                    col0[j]++;
                } else {
                    row1[i]++;
                    col1[j]++;
                }
                totalSingle++;
            }
        }

        long sumRow = 0;
        for (int i = 0; i < n; i++) {
            long s0 = (pow2[row0[i]] - 1 + MOD) % MOD;
            long s1 = (pow2[row1[i]] - 1 + MOD) % MOD;
            sumRow = (sumRow + s0 + s1) % MOD;
        }
        long sumCol = 0;
        for (int j = 0; j < m; j++) {
            long s0 = (pow2[col0[j]] - 1 + MOD) % MOD;
            long s1 = (pow2[col1[j]] - 1 + MOD) % MOD;
            sumCol = (sumCol + s0 + s1) % MOD;
        }

        long ans = (sumRow + sumCol - totalSingle % MOD + MOD) % MOD;
        System.out.println(ans);
    }
}

运行结果

四、【模板】组合数

import java.io.*;
public class Main {
    static final int MOD = 1000000007;
    static final int MAX = 500000;
    static long[] fact = new long[MAX + 1];
    static long[] invfact = new long[MAX + 1];

    static long qpow(long a, long b) {
        long res = 1;
        while (b > 0) {
            if ((b & 1) == 1) res = res * a % MOD;
            a = a * a % MOD;
            b >>= 1;
        }
        return res;
    }

    static void pre() {
        fact[0] = 1;
        for (int i = 1; i <= MAX; i++) {
            fact[i] = fact[i - 1] * i % MOD;
        }
        invfact[MAX] = qpow(fact[MAX], MOD - 2);
        for (int i = MAX - 1; i >= 0; i--) {
            invfact[i] = invfact[i + 1] * (i + 1) % MOD;
        }
    }

    public static void main(String[] args) throws IOException {
        pre();
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        int T = Integer.parseInt(br.readLine());
        while (T-- > 0) {
            String[] s = br.readLine().split(" ");
            int n = Integer.parseInt(s[0]);
            int m = Integer.parseInt(s[1]);
            long ans = fact[m] * invfact[n] % MOD;
            ans = ans * invfact[m - n] % MOD;
            bw.write(ans + "\n");
        }
        bw.flush();
    }
}

运行结果

五、人员分组问题

import java.util.Scanner;

public class Main {
    static final long MOD = 1000000007L;
    static long inv120, inv720, inv5040;

    static long qpow(long a, long b) {
        long res = 1;
        while (b > 0) {
            if ((b & 1) == 1) res = res * a % MOD;
            a = a * a % MOD;
            b >>= 1;
        }
        return res;
    }

    static void pre() {
        inv120 = qpow(120, MOD - 2);
        inv720 = qpow(720, MOD - 2);
        inv5040 = qpow(5040, MOD - 2);
    }

    public static void main(String[] args) {
        pre();
        Scanner sc = new Scanner(System.in);
        long n = sc.nextLong();
        long c5 = 0, c6 = 0, c7 = 0;

        if (n >= 5) {
            c5 = n * (n - 1) % MOD;
            c5 = c5 * (n - 2) % MOD;
            c5 = c5 * (n - 3) % MOD;
            c5 = c5 * (n - 4) % MOD;
            c5 = c5 * inv120 % MOD;
        }
        if (n >= 6) {
            c6 = c5 * (n - 5) % MOD;
            c6 = c6 * 6 % MOD;
            c6 = c6 * inv720 % MOD;
        }
        if (n >= 7) {
            c7 = c6 * (n - 6) % MOD;
            c7 = c7 * 7 % MOD;
            c7 = c7 * inv5040 % MOD;
        }

        long ans = (c5 + c6 + c7) % MOD;
        System.out.println(ans);
    }
}

运行结果

组合数学<1>——组合数学基础 组合数学基础:加乘原理,圆排列,排列组合,隔板法,杨辉三角递推,逆元 阅读详情

相关推荐

组合数学详解

有4个基本的计数原理:加法原理、乘法原理、除法原理、减法原理。下面介绍加法原理和乘法原理。 (1) 加法原理:设集合S划分为S1,S2,⋯ ,SmS_{1},S_{2},\cdots,S_{m}S1​,S2​,⋯,Sm​,则S的元素个数可以通过找出它的每部分元素的个数来确定,即∣S∣=∣S1∣+∣S2∣+⋯+∣Sm∣|S| = |S_{1}| + |S_{2}| + \cdots + |S_{m}|∣S∣=∣S1​∣+∣S2​∣+⋯+∣Sm​∣ 。通俗地说,一件事可以用mmm类不同的方法完成,其中第iii类

ABCZ168的博客 1635

算法题

import sys def myfun(n,xset,sset): if n==0: return sset[n] res=[] for i in range(n): if (n-i)*d>=abs(xset[n]-xset[i]): res.append(myfun(i,xset,sset)+sset[n]) return max(res) n,d = map(int,sys.stdin.readline()

辉的博客 1791

组合数学汇总

阶乘、排列、组合、帕斯卡法则、容斥原理

闻缺陷则喜何志丹 2326

阿里笔试算法题2021

1.小强现在有n个物品,每个物品有x,y两种属性和.他想要从中挑出尽可能多的物品满足以下条件:对于任意两个物品 i 和j ,满足( i.x < j.x 且 i.y < j.y)或者(i.x > j.x 且 i.y > j.y).问最多能挑出多少物品 第一行输入一个正整数 T.表示有T组数据. 对于每组数据,第一行输入一个正整数N.表示物品个数N. 接下来两行,每行有个N整数. 第一行表示N个节点的X属性. 第二行表示N个节点的Y属性 .

qq_35206389的博客 8130

组合数学全面详细答案集锦

本文还有配套的精品资源,点击获取 简介:组合数学是研究有限集合元素组合方式及计数问题的数学分支,广泛应用在计算机科学、统计学等领域。本资源提供了详尽的组合数学解题指导,涵盖了基本概念、组合计数、鸽巢原理等众多主题,包含大量例题解答,旨在帮助学习者深入理解并应用于实际问题解决。 1. 组合数学基础概念介绍 1.1 组合数学的定义与重要性 组合数学是数学的...

weixin_35871529的博客 1782

如何使用apifox打包测试用例生成测试套件自动化执行

使用apifox打包测试用例生成测试套件自动化执行

weixin_55613512的博客 2887

洛谷 P2141 [NOIP2014 普及组] 珠心算测验 Java

【代码】洛谷 P2141 [NOIP2014 普及组] 珠心算测验 Java。

Gengar021127的博客 361

CameraLink接口详解:从引脚定义到信号传输

本文详细解析了CameraLink接口的物理连接与信号传输机制。从MDR26连接器的引脚定义与镜像关系入手,深入讲解了BASE与MEDIUM模式下的信号映射、LVDS差分传输原理,并强调了屏蔽层处理与端接电阻等关键硬件设计细节。文章结合实战经验,提供了常见图像传输问题的排查思路,是工业视觉领域高速图像传输的实用指南。

weixin_28318011的博客 889

算法--------俄罗斯套娃信封问题(Java版本)

题目 给定一些标记了宽度和高度的信封,宽度和高度以整数对形式 (w, h) 出现。当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一样。 请计算最多能有多少个信封能组成一组“俄罗斯套娃”信封(即可以把一个信封放到另一个信封里面)。 说明: 不允许旋转信封。 示例: 输入: envelopes = [[5,4],[6,4],[6,7],[2,3]] 输出: 3 解释: 最多信封的个数为 3, 组合为: [2,3] => [5,4] => [6,

男儿不展风云志,空有天生八尺躯 673

应急响应靶场练习Linux-web-2

本次应急响应靶机采用的是知攻善防实验室的Linux-2应急响应靶机靶机下载地址为:相关账户密码: root/Inch@957821.(第一个为大写的i,记住要带最后的点.)1.该攻击者的IP为192.168.20.12.攻击方式应该是通过/index.php?user-app-register上传了一个webshell,然后使用蚁剑管理webshell之后再次上传version2.php进行提权.3.攻击者修改了phpmyadmin数据库的管理员密码。

tddkett的博客 2802

1173:阶乘和

1173:阶乘和 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 6010 通过数: 3049 【题目描述】 用高精度计算出S=1!+2!+3!+…+n!(n≤50),其中“!”表示阶乘,例如:5!=5×4×3×2×1。 输入正整数n,输出计算结果S。 【输入】 一个正整数n。 【输出】 计算结果S。 【输入样例】 5 【输出样例】 153 思路: ...

zqhf123的博客 1261

leetcode300. 最长递增子序列(动态规划-java)

例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。我们可以假设 dp[0…知道dp[3] = 3,时,怎么求dp[4] 呢,4 位置的数字从0 位置开始比较到3位置,如果4位置的数字比3位置的数字大,那么dp[4] = 1 + dp[3];解释:最长递增子序列是 [2,3,7,101],因此长度为 4。输入:nums = [10,9,2,5,3,7,101,18]输入:nums = [7,7,7,7,7,7,7]输入:nums = [0,1,0,3,2,3]

SP_1024的博客 2078

MIT Bevfusion环境安装 Docker方式,nuscenes数据处理

Bevfusion环境安装,数据生成报错解决module 'numpy' has no attribute 'long';most likely due to a circular import。bevfusion docker环境

Jack_Man_N的博客 1144

[BZOJ1488][HNOI2009]图的同构(dfs+置换群+数论+组合数学)

题目描述传送门题解在完全图中选出一个简单图 相当于是将所有的边染成两种颜色 其余的就和BZOJ1815一样了代码#include<algorithm> #include<iostream> #include<cstring> #include<cstdio> #include<cmath> using namespace std; #define Mod 997 #define N 65int

zyf2000 1139

【企业智能体开发】优化模型成本、延迟与失败降级

小林的培训快开始时,服务台花很久“思考最优回答”,体验并不会更好。反过来,为了省钱而始终选最轻的模型,若连房间、连接方式和任务状态都识别不稳,后续错误检索和重复建单会造成更大代价。企业 Agent 的优化对象不是单次模型调用价格,而是任务在可接受时间内、安全地推进到正确结果的总成本。

Mr数据杨 894

通过 MATLAB/Simulink + Simscape Battery,构建了锂电池老化模型与容量衰减仿真系统

本文基于MATLAB/Simulink平台,构建锂电池老化模型与容量衰减仿真系统,研究储能电池健康管理技术。通过搭建电化学-老化耦合模型,模拟循环和日历老化机制,分析温度、充放电倍率、DOD等因素对电池寿命的影响。系统实现了SOH在线估计和RUL预测功能,仿真了标准日历老化、高倍率循环和峰谷套利等典型工况下的电池衰减行为。结果表明:高温和深充放会显著加速电池老化,而精准的SOH管理可提升储能系统经济性30%以上。文章还探讨了数字孪生、机器学习等高级优化方向,为储能系统长周期运营提供技术支撑。

xiaoheshang_123的博客 399

组合数学1--组合数学简介

组合数学简介 什么是组合数学 组合数学,亦称组合论、组合学,亦研究离散数学中的排列组合问题,研究的是计数技巧。 组合数学在数学发展史出现的阶段: 数学起源于计数数学发展史印加帝国结绳计数法算数初等代数几何学十六世纪初等数学十七世纪出现变量高等数学概率学概率学组合数学群论抽象代数集合数论拓扑学 组合数学研究具有一定规格的事物。 事物是否存在,有多少种,是否可以变得更好, 即:对应组合数学研究的三大问题:存在性,技术性,优化性。 ...

weixin_39491014的博客 4714

16. SAP Fiori Elements 应用里图片字段(Image)的显示原理介绍

很多朋友向我反映,学习了 一段时间的 SAP Fiori Elements 开发,但是感觉整套体系对于自己来说还是个黑盒子,很多技术点,看了 SAP 官方帮助文档后,觉得自己懂了,但是一旦需要自己动手做一些东西出来时,又觉得一片茫然。 其实笔者自己也经历过这个过程。究其原因,还是大家对 Fiori Elements 一些技术细节没有理解,对 SAP 官方的知识点仅仅停留在记忆,甚至是死记硬背上面。 不过没有关系,本教程笔者会刻意设置一些练习,让大家动手,在实战中逐渐熟悉 Fiori Elements 这

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 760

简单的组合数学

加法原理和乘法原理 一件事有若干个方法 →\to→ 加法原理。 一件事有若干个步骤 →\to→ 乘法原理。

ylxmf2005's Blog 280

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

组合数学总结

组合数学

weixin_45102820的博客 2235

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

十四、 组合数学

人们在生活中经常会遇到排列组合问题。比如说:在5个礼物中选2个,问有多少种选取方法?组合数学就是研究一个集合内满足一定规则的排列问题。

n666fgh的博客 1374

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

组合数学 (二): 排列组合

排列组合公式排列组合代码输出所有排列错位排列输出所有组合 公式 排列 从 M 个数中有序地拿出 N 个数的方案数为 PMN=M!(M−N)!P_M^N=\frac{M!}{(M-N)!}PMN​=(M−N)!M!​ 简单解释就是: M 个数的全排列个数为 M!M!M!, 如果拿出 N 个数, 那么就要去掉多出来的所有排列, 所以就要除以 (M−N)!(M-N)!(M−N)! 组合 从 M 个数中不...

王成昊的博客 1190

组合数学

广义的组合数学就是离散数学,狭义的组合数学是图论、代数结构、数理逻辑等的总称。但这只是不同学者在叫法上的区别。总之,组合数学是一门研究离散对象的科学。 主要写写: 1、排列组合 2、错排公式 3、容斥原理 4、狄摩根定理 5、catalan数 6、母函数 7、Stirling数 8、鸽巢原理 一、排列组合:(有序排列、无序组合) 排列: 集合中有n个元素,从该集合中有顺

xyjikl 3715

【知识】组合数学

组合数学,像数论一样是发源自数学的恶心东西,在计算机上更是与取余成为结发夫妻,与DP和数论的关系也不一般。更因为计算机令人惊骇的枚举耐心,出现了更加可怕的变种题目。好了,现在进入正题。     1.计数原理(我不愿多说了)     1)加法原理 2)乘法原理 3)抽屉原理 4)容斥原理     尴尬事实:     加法原理和乘法原理——基本不会单考...     抽屉最多是你在草稿纸里的

Starlight的博客 1845

组合数学入门书籍推荐

1、奥数小丛书(第三版)初中卷7:组合趣题(第三版) 2、初中数学竞赛中的组合问题(2011) 3、初中数学竞赛专家讲座 概率统计与组合问题-2018-11 4、奥数小丛书(第三版)(高中B辑)卷16:组合数学(第三版)-2020.05 5、奥数小丛书(第三版)(高中B辑)卷17:图论(第三版)-2020.05 6、奥数小丛书(第三版)(高中B辑)卷18:组合极值(第三版)-2020.05 7、高中数学竞赛专家讲座 染色与染色方法 ...

青少年趣味编程 3495
上一篇: 简单组合数学(一)
w_zero_one
博客等级 码龄2年 149粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值