一、基本函数
函数类别
数学表示
Python函数名(math库)
Python函数名(numpy库)
示例
幂函数
$x^a$
math.pow(x, a) 或 x**a
np.power(x, a)
math.pow(2, 3) → 8.0
指数函数(自然底数)
$e^x$
math.exp(x)
np.exp(x)
math.exp(2) ≈ 7.389
指数函数(一般底数)
$a^x$
无直接函数,使用 a**x
np.power(a, x) 或 np.exp2(x)(仅限$2^x$)
2**3 → 8
自然对数
$\ln x$
math.log(x)
np....
最新文章
零钱兑换问题(Coin Change)是一个经典的动态规划问题,目标是找出组成给定金额所需的最少硬币数量。
问题描述
给定不同面额的硬币 coins 和一个总金额 amount,计算可以凑成总金额所需的最少硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。
假设:
- 硬币数量无限
- 硬币面额都是正整数
- 总金额 amount 是非负整数
方法一:暴力递归(回溯法)
思路分析
通过递归尝试所有可能的硬币组合,找出使用硬币数量最少的方案。
时间复杂度
O(Sⁿ),其中 S 是金额,n 是硬币种类数
代码实现
#include <iostream>
#include &l...
解码顶尖竞赛:从NOI最新大纲中,我们读出了关于AI时代人才培养的5个惊人信号
导言
你是否也曾好奇,那些在金字塔尖的青少年编程竞赛,究竟在考察孩子们什么样的能力?它们仅仅是代码技巧的比拼,还是一场更深层次的思维对决?最近,中国计算机学会(CCF)发布了极具分量的《全国青少年信息学奥林克系列竞赛大纲(2025年修订版)》。这份看似专业的技术文件,远不止是一份竞赛指南。它更像一扇窗口,让我们得以清晰地窥见,在GPT为代表的人工智能浪潮席卷而来的今天,我们顶尖的科技人才培养蓝图正在发生何种深刻的变革。在深入研读这份纲领性文件后,我从中提炼出五大信号——有些是细微的调整,有些则是颠覆性的转向,它们共...
异或运算符 ^ 是 C++ 中的位运算符,表示按位异或(XOR)操作。
基本概念
运算符:^
运算规则:相同为0,不同为1
0 ^ 0 = 0、
0 ^ 1 = 1、
1 ^ 0 = 1、
1 ^ 1 = 0
操作对象:整数类型(int, char, long等)的二进制位
重要特性
交换律:a ^ b = b ^ a
结合律:(a ^ b) ^ c = a ^ (b ^ c)
自反性:a ^ a = 0
与0异或:a ^ 0 = a
可逆性:如果 c = a ^ b,则 a = c ^ b
5个应用场景及代码示例
1. 交换两个变量的值(不使用临时变量)
#incl...
第2章:排序与顺序统计量
2.1 排序问题
排序的定义:
排序是将一组数据按特定顺序排列,通常是从小到大或从大到小。
排序在许多应用中是基础操作,如数据库查询、数据分析、图形学等。
排序算法的设计目标:
时间复杂度:对大规模数据的排序效率。
空间复杂度:算法所需的额外内存。
稳定性:如果两个元素相等,它们在排序后的相对顺序是否保持不变。
2.2 比较排序算法
比较排序的基本思想:
排序过程中通过比较元素之间的大小关系来决定元素的相对位置。
经典的比较排序算法有:插入排序、归并排序、快速排序、堆排序等。
时间复杂度的下界:
在最坏情况下,比较排序的时间复杂度下界为O(n log n),...
第3章:数据结构
3.1 基本数据结构
在这一小节中,我们讨论了几种最常见的基本数据结构,并介绍了它们的特点、操作方法和应用场景。
3.1.1 线性表 (Linear List)
定义:线性表是由一系列相同类型的元素按顺序排列而成的数据结构。最常见的线性表有数组和链表。
特点:元素之间存在一一对应的关系,可以通过下标访问每个元素。
线性表的两种常见实现:
数组 (Array):固定大小的连续内存块,支持随机访问,但插入和删除操作效率较低。
链表 (Linked List):由一系列节点组成,每个节点包含数据和指向下一个节点的指针。链表适合插入和删除操作,但访问效率较低。
3.1.2 栈 (...
第1章:引言
1.1 算法与问题的定义
算法的定义:
算法是解决问题的一组明确的指令或步骤,用于将输入转换为输出。
一个好的算法应该具备清晰的正确性、效率和可理解性。
算法的三个主要方面:
输入:算法接受的初始数据。
输出:算法计算后的结果。
过程:算法执行的步骤。
1.2 算法的特性
正确性:
一个算法必须在所有输入情况下产生正确的输出。
效率:
主要指算法的时间复杂度和空间复杂度。
时间复杂度:执行步骤的数量。
空间复杂度:算法需要的额外内存。
可理解性:
算法应该易于理解和实现。
1.3 算法分析的基本方法
时间复杂度分析:
时间复杂度用来衡量算法执行所需的时间量,...
数论是信息学竞赛中非常重要的领域,涉及很多基础算法和技巧,尤其是在处理大数、同余运算、质数分解等问题时。在竞赛中,数论的知识不仅对解题提供了强有力的支持,而且很多算法背后都有深刻的数学原理。
1. 素数与质因数分解
1.1 素数的基本概念
素数(Prime Number):大于1的整数,且除了1和其本身外没有其他约数的数。例如,2、3、5、7、11、13等。
合数(Composite Number):大于1且可以分解为多个素数相乘的整数。例如,4、6、8、9、10等。
质因数分解:将一个整数分解为若干个素数的乘积。每个数都有唯一的质因数分解。
1.2 素数判定
朴素算法:检查一个数是否能被从2...
1. 程序基本概念
🌈学习目标
理解程序的基本组成部分
学会命名常量和变量
了解头文件和名字空间的作用
掌握编写程序的基本步骤
1.1 基本概念解释
标识符:就像我们的名字,用来给变量、常量起名
int myAge = 10; // myAge就是标识符
string myName = "小明"; // myName也是标识符
关键字:C++语言预留的特殊单词,就像"爸爸"、"妈妈"这样的称呼
int if = 5; // 错误!if是关键字,不能当变量名
常量:不会改变的值,就像我们的生日
const double PI = 3.14; // P...
【25CSPJ普及组】拼数
这是一个字符串处理问题,需要从给定的字符串中提取所有数字字符,然后组成最大的正整数。
思路:
从字符串中提取所有的数字字符
对数字字符进行排序(降序),这样最大的数字会在前面
注意:不能有前导零,所以如果第一个字符是'0',需要特殊处理
#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
using namespace std;
int main() {
string s;
cin &...
第 1 页 / 共 2 页
下一页