当前位置:网站首页>LeetCode 1175. 质数排列(质数判断+组合数学)
LeetCode 1175. 质数排列(质数判断+组合数学)
2022-07-02 05:01:00 【xylitolz】
0 题目
1 解题思路
1.1 质数判断+组合数学
本 题 总 的 方 案 数 = 「 所 有 质 数 都 放 在 质 数 索 引 上 的 方 案 数 」 × 「 所 有 合 数 都 放 在 合 数 索 引 上 的 方 案 数 」 本题总的方案数=「所有质数都放在质数索引上的方案数」\times \\ 「所有合数都放在合数索引上的方案数」 本题总的方案数=「所有质数都放在质数索引上的方案数」×「所有合数都放在合数索引上的方案数」
「所有质数都放在质数索引上的方案数」:
- 首先求出 [ 1 , n ] [1,n] [1,n]范围内所有质数的个数 p r i m e N u m primeNum primeNum
- 枚举100以内所有质数+二分
- 试除法
- 再求出质数个数 primeNum \textit{primeNum} primeNum 的阶乘即为方案数
「所有合数都放在合数索引上的方案数」:
- n − p r i m e N u m n - primeNum n−primeNum即为所有合数的个数,再求其阶乘即为方案数
排列:
A ( m , n ) = n ! ( n − m ) ! A(m, n) = \frac{n!}{(n - m)!} A(m,n)=(n−m)!n!组合:
C ( m , n ) = n ! m ! × ( n − m ) ! C(m, n) = \frac{n!}{m! \times (n - m)!} C(m,n)=m!×(n−m)!n!
1.1.1 代码实现
1.1.1.1 枚举100以内所有质数+二分
class Solution {
// 枚举100以内所有质数
private static int[] PRIME = {
2, 3, 5, 7,
11, 13, 17, 19,
23, 29,
31, 37,
41, 43, 47,
53, 59,
61, 67,
71, 73, 79,
83, 89,
97};
private static final int MOD = 1000000007;
public int numPrimeArrangements(int n) {
// 利用二分求取质数个数
int primeNum = binarySearch(n) + 1;
// 利用阶乘求方案数
return (int) (calcFactorial(primeNum) * calcFactorial(n - primeNum) % MOD) ;
}
private long calcFactorial(int m) {
long res = 1;
while (m != 0) {
res *= m;
res %= MOD;
m--;
}
return res;
}
private int binarySearch(int n) {
int left = 0, right = PRIME.length - 1;
while (left < right) {
int mid = left + (right - left + 1) / 2;
if (PRIME[mid] > n) {
right = mid - 1;
} else {
left = mid;
}
}
return left;
}
}
1.1.1.2 试除法
class Solution {
private static final int MOD = 1000000007;
public int numPrimeArrangements(int n) {
// 试除法求取质数个数
int primeNum = 0;
for (int i = 1; i <= n; i++) {
if (isPrime(i)) {
primeNum++;
}
}
// 利用阶乘求方案数
return (int) (calcFactorial(primeNum) * calcFactorial(n - primeNum) % MOD);
}
public boolean isPrime(int n) {
if (n == 1) {
return false;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
public long calcFactorial(int n) {
long res = 1;
for (int i = 1; i <= n; i++) {
res *= i;
res %= MOD;
}
return res;
}
}
2 Reference
边栏推荐
- fastText文本分类
- Pytest learning ----- pytest Interface Association framework encapsulation of interface automation testing
- How to recover deleted data in disk
- 解析少儿编程中的动手搭建教程
- C# 图片显示占用问题
- 洛谷入门3【循环结构】题单题解
- Hcip day 17
- Interview question: do you know the difference between deep copy and shallow copy? What is a reference copy?
- 6.30 year end summary, end of student age
- I sorted out some basic questions about opencv AI kit.
猜你喜欢
06 装饰(Decorator)模式
Go Chan's underlying principles
Mysql database learning
Application d'un robot intelligent dans le domaine de l'agroécologie
The underlying principle of go map (storage and capacity expansion)
Acelems Expressway microgrid energy efficiency management platform and intelligent lighting solution intelligent lighting tunnel
Summary of common string processing functions in C language
Line by line explanation of yolox source code of anchor free series network (7) -- obj in head_ loss、Cls_ Loss and reg_ Calculation and reverse transmission of loss I
The El cascader echo only selects the questions that are not displayed
Realize the function of data uploading
随机推荐
Embedded-c language-9-makefile/ structure / Consortium
Ansible installation and use
How to configure PostgreSQL 12.9 to allow remote connections
AcrelEMS高速公路微电网能效管理平台与智能照明解决方案智慧点亮隧道
How to write a client-side technical solution
Tawang food industry insight | current situation, consumption data and trend analysis of domestic infant complementary food market
Mathematical problems (number theory) trial division to judge prime numbers, decompose prime factors, and screen prime numbers
Lay the foundation for children's programming to become a basic discipline
Summary of database problems
Map in JS (including leetcode examples)
Practical problem solving ability of steam Education
Typescript function details
Change deepin to Alibaba image source
Knowledge arrangement about steam Education
Starting from the classification of database, I understand the map database
Application of intelligent robot in agricultural ecology
DMA Porter
Hcip day 17
JS interview collection test question 1
Future trend of automated testing ----- self healing technology