数学

JavaScript 数学对象

痴心易碎 提交于 2020-01-19 15:40:02
文章目录 1. 圆周率 2. 获取随机数字 3. 获取两个数较小值较大值 4. 向上取整,向下取整,四舍五入 5. 绝对值 6. 正弦,余弦,正切 7. 次方,平方根 1. 圆周率 2. 获取随机数字 0~1 3. 获取两个数较小值较大值 4. 向上取整,向下取整,四舍五入 5. 绝对值 6. 正弦,余弦,正切 弧度值表示 7. 次方,平方根 来源: CSDN 作者: 玩爬虫的小朋友 链接: https://blog.csdn.net/gklcsdn/article/details/104037131

提高历练地-其他数学问题

给你一囗甜甜゛ 提交于 2020-01-19 14:38:20
P1641 [SCOI2010]生成字符串 题目描述 lxhgww最近接到了一个生成字符串的任务,任务需要他把n个1和m个0组成字符串,但是任务还要求在组成的字符串中,在任意的前k个字符中,1的个数不能少于0的个数。现在lxhgww想要知道满足要求的字符串共有多少个,聪明的程序员们,你们能帮助他吗? 输入格式 输入数据是一行,包括2个数字n和m 输出格式 输出数据是一行,包括1个数字,表示满足要求的字符串数目,这个数可能会很大,只需输出这个数除以20100403的余数 输入输出样例 输入 #1 复制 2 2 输出 #1 复制 2 说明/提示 limitation 每点2秒 对于30%的数据,保证1<=m<=n<=1000 对于100%的数据,保证1<=m<=n<=1000000 费马小定理 费马小定理是数论中的一个定理:假如a是一个整数,p是一个质数,那么a^p-a是p的倍数 如果a不是p的倍数,这个定理也可以写成 若a与p互质,且p是质数时,a (p-1) ≡1 ,并且,a -1 也是a的逆元 有: a (p-1) =1=a -1 a a (p-1) =a -1 a a (p-2) =a -1 即: C(n,m)=( n*(n-1)* … * (n-m+1) ) / ( m! )=( n*(n-1)* … * (n-m+1) ) * (m!) (p-2) = n! * (m! *

数学、物理算法ActionScript

狂风中的少年 提交于 2020-01-19 11:44:48
数学、物理算法ActionScript实现(1) 1.计算基本的三角函数 正弦=对边/斜边 Math.sin (弧度值): Number 余弦=邻边/斜边 Math.cos (弧度值): Number 正切=对边/邻边 Math.tan (弧度值): Number 余切=邻边/对边 1/ Math.tan (弧度值): Number 2.转换弧度为度和转换度为弧度 radians = degrees * Math.PI / 180; degrees = radians * 180 / Math.PI ; 3.旋转鼠标位置 dx = mouseX - sprite .x ; dy = mouseY - sprite .y ; sprite .rotation = Math.atan2 (dy,dx) * 180 / Math.PI ; 4.创建波 public function Active(e: Event ) { value = center + Math.sin (angle) * range; angle += speed; } 5.创建圆 public function Active(e: Event ) { xpos = centerX + Math.cos (angle) * radius; ypos = centerY + Math.sin (angle) *

如何学习全同态密码

折月煮酒 提交于 2020-01-19 03:47:47
如何学习全同态密码 ** 本文由陈智罡博士撰写。 自从微信公众号里发了我在2015年写的博文“ 给博士生的话 ”后,许多研究生问如何学习全同态加密,以及全同态加密的必看的三篇文章是什么。在这里为大家统一答复。 学习全同态加密需要三部分知识: 数学基础,格密码基础,全同态加密 。 许多研究生在学习全同态加密时,以为只是学习全同态加密,所以看第一篇文章时,从入门直接到放弃。 这是因为任何知识都需要其它的知识作为基础,而全同态加密属于公钥密码学,所以首先它是一个加密算法,然后具有同态属性。 因此,必须熟悉格加密算法,以及相关的数学知识。下面我们分别说说这三部分。 **数学基础** 因为目前全同态加密都是构建在格密码算法之上的,所以格密码需要哪些数学知识,以及全同态加密本身需要哪些数学知识就构成了整个学习所需的数学基础。 格密码需要哪些数学基础呢? 主要需要线性代数和抽象代数的基础。线性代数一般理工科都学过,例如矩阵,行列式等计算,向量空间的基等。格加密算法里的计算都是矩阵行列式计算。 抽象代数估计不是数学专业的,有可能没学过。抽象代数里的群、环、域等知识非常重要,尤其是环,是格加密的数学基础。抽象代数中一般还会涉及到数论一些知识,也在全同态加密中会使用,例如模计算等。 初学者可以看:An Introduction to Mathematical Cryptography 补充相关数学知识

算法提高 成绩排序2

浪尽此生 提交于 2020-01-19 02:48:43
算法提高 成绩排序2 /*问题描述   给出n个学生的成绩,将这些学生按成绩排序,排序规则: 总分高的在前;总分相同,数学成绩高的在前; 总分与数学相同,英语高的在前; 总分数学英语都相同,学号小的在前 输入格式   第一行一个正整数n,表示学生人数   接下来n行每行3个0~100的整数,第i行表示学号为i的学生的数学、英语、语文成绩 输出格式   输出n行,每行表示一个学生的数学成绩、英语成绩、语文成绩、学号   按排序后的顺序输出 样例输入 2 1 2 3 2 3 4 样例输出 2 3 4 2 1 2 3 1 数据规模和约定   n≤100 */ 思路:与 算法提高 成绩排序 一样,就多了个总成绩 结构体(5个元素):总成绩,数学,英语,语文,学号 结构体外定义一个数组a存放每名学生信息 排序使用冒泡排序,因为数据规模不是很大。 # include <iostream> using namespace std ; struct score { int chinese ; int math ; int English ; int num ; int imscore ; //总分 } a [ 100 ] ; int main ( ) { int n ; cin >> n ; for ( int i = 0 ; i < n ; i ++ ) { cin >> a [ i ] .

sql server pivot/unpivot 行列互转

泪湿孤枕 提交于 2020-01-19 02:42:23
有时候会碰到行转列的需求(也就是将列的值作为列名称),通常我都是用 CASE END + 聚合函数来实现的。 如下: declare @t table (StudentName nvarchar(20), Subject nvarchar(20), Score int) Insert into @t (StudentName,Subject,Score) values ( '学生A', '中文', 80 ); Insert into @t (StudentName,Subject,Score) values ( '学生A', '数学', 78 ); Insert into @t (StudentName,Subject,Score) values ( '学生A', '英语', 92 ); Insert into @t (StudentName,Subject,Score) values ( '学生B', '中文', 89 ); Insert into @t (StudentName,Subject,Score) values ( '学生B', '数学', 87 ); Insert into @t (StudentName,Subject,Score) values ( '学生B', '英语', 75 ); Insert into @t (StudentName,Subject

SQL Server:使用 PIVOT 行转列和 UNPIVOT 列转行

别等时光非礼了梦想. 提交于 2020-01-19 02:40:12
ylbtech-SQL Server:使用 PIVOT 行转列和 UNPIVOT 列转行 可以使用 PIVOT 和 UNPIVOT 关系运算符将表值表达式更改为另一个表。PIVOT 通过将表达式某一列中的唯一值转换为输出中的多个列来旋转表值表达式,并在必要时对最终输出中所需的任何其余列值执行聚合。UNPIVOT 与 PIVOT 执行相反的操作,将表值表达式的列转换为列值。 【注】对升级到 SQL Server 2005 或更高版本的数据库使用 PIVOT 和 UNPIVOT 时,必须将数据库的兼容级别设置为 90 或更高。有关如何设置数据库兼容级别的信息,请参阅 sp_dbcmptlevel (Transact-SQL)。 A,PIVOT 语法 返回顶部 1、 PIVOT 提供的语法比一系列复杂的 SELECT...CASE 语句中所指定的语法更简单和更具可读性。有关 PIVOT 语法的完整说明,请参阅 FROM (Transact-SQL)。 以下是带批注的 PIVOT 语法。 SELECT <非透视的列>, [第一个透视的列] AS <列名称>, [第二个透视的列] AS <列名称>, ... [最后一个透视的列] AS <列名称>, FROM (<生成数据的 SELECT 查询>) AS <源查询的别名> PIVOT ( <聚合函数>(<要聚合的列>) FOR [

程序实验(python)

谁说我不能喝 提交于 2020-01-19 00:57:04
编写代码完成如下功能: (1)建立字典 d,包含内容是:"数学":80, "语文":85, "英语":91, "物理":88, "生物":89。 (2)向字典中添加键值对"python":98。 (3)修改"数学"对应的值为 92。 (4)删除"生物"对应的键值对。 (5)按顺序打印字典 d 全部信息,参考格式如下(注意,其中冒号为英文冒号,逐行打印): 80:数学 85:语文 91:(略) d={'数学':80,'语文':85,'英语':91,'物理':88,'生物':89} print(d) d['python']=98 d['数学']=92 d.pop('生物') print(d) list1=[] list2=[] for k,v in d.items(): list1.append(k) list2.append(v) print(v,':',k) print(list1) print(list2) 来源: CSDN 作者: LY_dreams 链接: https://blog.csdn.net/MengJing_/article/details/103796593

【数学】C020_x的平方根(暴力枚举 | 二分查找 | 牛顿迭代)

 ̄綄美尐妖づ 提交于 2020-01-19 00:55:24
一、题目描述 实现 int sqrt ( int x ) 函数。 计算并返回 x 的平方根,其中 x 是非负整数。 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。 输入 : 8 输出 : 2 说明 : 8 的平方根是 2.82842 . . . ,由于返回类型是整数,小数部分将被舍去。 二、题解 (1) 枚举 /** * 枚举: * 执行用时 32ms 击败了 5.8% 的java用户 * 内存消耗 MB 击败了 % 的java用户 * @param x * @return */ public int mySqrt1 ( int x ) { if ( x < 1 ) return 0 ; // 任何一个数的平方根都小于等于它的二分之一加一 for ( long i = 0 ; i <= ( x >>> 1 ) + 1 ; i ++ ) { if ( i * i <= x && ( i + 1 ) * ( i + 1 ) > x ) return ( int ) i ; } return - 1 ; } 复杂度分析 时间复杂度: 空间复杂度: (2) 二分查找 /** * 二分查找: * * 执行用时 ms 击败了 % 的java用户 * 内存消耗 MB 击败了 % 的java用户 * @param x * @return */ public int mySqrt (

数学的本质

喜夏-厌秋 提交于 2020-01-18 10:20:27
先说说数学的起源 在很早很早以前是没有阿拉伯数字 都是用物品来代替数字 后来出现了数字来表示 后来又出现了函数 矩阵 来表示集合 一系列的运算 当然集合一般来用几何来表示更为清晰 所以做数学题也一样 一般用几何来表示集合 来运算更好 来源: https://www.cnblogs.com/newmiracle/p/12208254.html