数学

LOJ6229 这是一道简单的数学题

筅森魡賤 提交于 2020-03-03 10:34:13
这是一道简单的数学题 设 \[ F(n)=\sum_{i=1}^n\sum_{j=1}^i\frac{\mathrm{lcm}(i,j)}{\mathrm{gcd}(i,j)} \] 其中, \(\mathrm{lcm}(a,b)\) 表示 \(a\) 和 \(b\) 的最小公倍数, \(\mathrm{gcd}(a,b)\) 表示 \(a\) 和 \(b\) 的最大公约数。 给定 \(n\) ,让你求: \(F(n) \bmod1000000007\) 。 对于所有数据, \(1 \le n \le 10^9\) 。 题解 \[ F(n)=\sum_{i=1}^n\sum_{j=1}^i \frac{ij}{\gcd(i,j)^2}\\ =\sum_{d=1}^n\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^i ij[\gcd(i,j)=1]\\ =\sum_{d=1}^n\sum_{x=1}^{\lfloor\frac{n}{d}\rfloor}\mu(x)x^2\sum_{i=1}^{\lfloor\frac{n}{dx}\rfloor}\sum_{j=1}^i ij\\ =\sum_{d=1}^n G(\lfloor\frac{n}{d}\rfloor) \] \[ G(n)=\sum_{x=1}^n\mu(x)x^2

第三周视频

社会主义新天地 提交于 2020-03-03 09:33:28
一、简述方法论 数学建模方法论:类比/创新 函数关系:人类建立起来的变量之间最简单最直观的定量关系就是函数关系。 建立函数关系的方法: 观察法、拟合方法、插值方法 二、观察法与初等数学方法 通过大量数据,利用变量之间的比例性质得到自然规律; 观察法与初等数学知识结合。 三、数据拟合方法 拟合/插值:通过已知的观测数据寻找近似函数。 数据拟合的三种别标准: 使偏差的绝对值之和最小;使偏差的最大绝对值最小;使偏差的平方和最小(最小二乘法)。 来源: https://www.cnblogs.com/caihan/p/12400433.html

LeetCode 刷题-- 数学类

≯℡__Kan透↙ 提交于 2020-03-03 08:17:14
283. 移动零 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0] public void moveZeroes ( int [ ] nums ) { int j = 0 ; //第一遍遍历,把不为0的数字都赋值给j //第二遍遍历,把0放在后面 for ( int i = 0 ; i < nums . length ; i ++ ) { if ( nums [ i ] != 0 ) { nums [ j ] = nums [ i ] ; j ++ ; } } for ( int i = j ; i < nums . length ; i ++ ) { nums [ i ] = 0 ; } } } 485. 最大的连续1的个数 给定一个二进制数组, 计算其中最大连续1的个数。 示例 1: 输入: [1,1,0,1,1,1] 输出: 3 解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3. 注意: 输入的数组只包含 0 和1。 输入数组的长度是正整数,且不超过 10,000。 class Solution { public int findMaxConsecutiveOnes ( int [ ] nums ) { int count = 0 ;

DirectX学习笔记一 #数学基础

泄露秘密 提交于 2020-03-03 05:30:44
1.基本概念 向量:有向线段,长度和方向是2个重要属性。DirectX中,Vector可以表示点坐标、方向等信息。 坐标系:DirectX中使用的是左手坐标系。 单位向量(unit vector):模为1的向量称为单位向量。 2.DirectX中与向量有关的类——D3DXVECTOR3(一般是3D的,还有2D和4D的向量) D3DXVECTOR3类定义如下: 可以看到,D3DXVECTOR3类实际上定义了一个结构体,这个结构体有float型的3个数据成员,分别表示3维向量的3个分量,此外,还有一些个运算符重载是用于向量的计算的。 3.向量的计算 略过求模,规范化(求单位向量),向量加减,数乘。。。只讲点积、叉积 记住,点积是两个向量的对应分量相乘(component-wise multiply)再相加。 如上所述,当u、v都是单位向量时,它们的点积就等于向量夹角的余弦值。(这可以用来计算light和plane的夹角,从而根据不同的角度计算光照量) 3.矩阵 忽略矩阵加减、数乘,只讲逆矩阵和转置矩阵。逆矩阵主要是用于逆变换,即还原为变换前的状态;而引出转置矩阵主要就是为了计算逆矩阵,因为计算逆矩阵需要用到转置矩阵。另外,记住一点,对于规范化的矩阵,它的逆矩阵和转置矩阵相等。这就提供了一个快速计算逆矩阵的方法,因为转置矩阵不就是转了一下而已,根本不用计算。 矩阵的叉积: 为帮助记忆

精湛技艺的祭品

谁说胖子不能爱 提交于 2020-03-03 02:15:37
就我个人的经历来讲,对计算机技术的精炼程度总是比不上数学。 为什么呢?思来想去,还是投入与激情的问题。对数学的投入,可不是简单地停留在单纯的技术、技法上,而是对它的历史、发展、伟大人物、社区都了如指掌。各种细节奇闻异事简直如数家珍,还经常同朋友以这些梗作为玩笑的素材。 而programming,根本没能达到这样的投入水准。脑海里总是有这样一种印象:知道“技法”也就够了。不过是一堆实用性的工程知识学,没有太多走心的必要性,也不用分心去理解融入里面的各种文化、哲学。 可是一旦将关注点转移到数学上,我的看法就两样了。自己太清楚那些掌握数学发展历程、行事哲学、以探索数学作为人类心智荣耀的那群人,同那些仅仅学习了数学“技法”之人的实力差距了。 如果能够认同理解相关文化、历史、哲学在数学当中的重要性,又怎敢期望能够绕过“了解、理解这些计算机文化”这一过程,而达到programming的精练?! 自己阅读数学证明的时候,大多有一个潜意识的初衷:这堆奇形怪状的符号一般人都看不懂的,而我可以(或者而我要把它看懂),要以此来彰显自己的卓尔不群。 之后便可以长时间地全情投入、剖析数学证明,有滋有味地去细啃每一个精妙的技巧和文字背后所蕴藏的深意。时间无疑会因此耗费相当之多,但最终,能够将所有技艺存乎一心再上一个境界,理解这堆符号背后的“诗意”。 但是在看代码的时候,感觉耐心明显就比不上数学了

Python对函数求偏导数

懵懂的女人 提交于 2020-03-02 11:50:54
求偏导数partial derivative 利用Sympy库 SymPy是一个符号计算的Python库。它的目标是成为一个全功能的计算机代数系统,同时保持代码简洁、易于理解和扩展。它完全由Python写成,不依赖于外部库。 SymPy支持符号计算、高精度计算、模式匹配、绘图、解方程、微积分、组合数学、离散数学、几何学、概率与统计、物理学等方面的功能。 程序代码 >> > from sympy import symbols , diff >> > x , y = symbols ( 'x y' , real = True ) >> > diff ( x ** 2 + y ** 3 , y ) 3 * y ** 2 >> > diff ( x ** 2 + y ** 3 , y ) . subs ( { x : 3 , y : 1 } ) 3 先将所求变量(x,y)符号化。否则会提示为定义错误: NameError: name 'y' is not defined 。之后利用 diff 函数求对应函数偏导数。 求出偏导数之后,若想求具体的值,可利用 subs 属性进行变量的替换,便可自动求出对应值。 参考链接: https://docs.sympy.org/latest/index.html 来源: CSDN 作者: Jichao Zhao 链接: https://blog.csdn

东华OJ基础题80 平均分

删除回忆录丶 提交于 2020-03-02 11:46:47
问题描述 : 从键盘依次输入每个学生的学号、姓名、出生年月、3门课的成绩,计算并打印出每个学生的平均成绩。 要求使用结构体数组。 输入说明 : 第一行,整数n,表示一共有n个学生。 从第二行开始共n行,每行包含学号,姓名,出生年,出生月,数学,英语,C语言的成绩,用空格分隔,姓名不含空格。 输出说明 : 共n行,每行包含学号,姓名,出生年/月,数学,英语,C语言,平均成绩。 输出浮点数使用“%.0f”,出生年月用“/”分开,数据之间以一个空格分隔。 输入范例 : 2 901 hulei 1990 8 67 78 89 902 fangang 1991 7 85 69 76 输出范例: 901 hulei 1990/8 67 78 89 78 902 fangang 1991/7 85 69 76 77 总结 1.属于结构成员访问的基础题,除了直接访问外,还可以设置一个结构数组可能会更好。 2.加油!!! # include <stdio.h> struct date { int year ; int month ; } ; struct score { double math ; double English ; double C ; } ; typedef struct stu { int ID ; char name [ 16 ] ; struct date birthday

火星救[数学,一点前缀和]

落爺英雄遲暮 提交于 2020-03-02 02:09:39
本题是个数学推理 ,我们先要保证剩下的车油都是满的,所以每当报废一辆车,剩余的车要保证是油满的。 那么就推出来了每当行驶 s/n(n = 1 ….n), 公里报废一辆..。 由于数据量大暴力的话必超时,那么就要用 前缀和 的一点知识 附上代码: 1 #include <cstdio> 2 3 long double a[1000005]; 4 int main(){ 5 a[1] = 1; 6 for(int i = 2; i <= 1000000; ++ i) 7 a[i] = a[i-1] + (long double)1.0 / i; 8 int T; 9 scanf("%d",&T); 10 while(T--){ 11 int n;long long s; 12 scanf("%d%lld", &n, &s); 13 printf("%.10Lf\n", a[n] * s); 14 } 15 return 0; 16 } 来源: https://www.cnblogs.com/rstz/p/12393210.html