ath 对象
Math是 JavaScript 的原生对象,提供各种数学功能。该对象不是构造函数,不能生成实例,所有的属性和方法都必须在Math对象上调用。
静态属性
Math对象的静态属性,提供以下一些数学常数。
Math.E:常数e。
Math.LN2:2 的自然对数。
Math.LN10:10 的自然对数。
Math.LOG2E:以 2 为底的e的对数。
Math.LOG10E:以 10 为底的e的对数。
Math.PI:常数π。
Math.SQRT1_2:0.5 的平方根。
Math.SQRT2:2 的平方根。
Math.E // 2.718281828459045
Math.LN2 // 0.6931471805599453
Math.LN10 // 2.302585092994046
Math.LOG2E // 1.4426950408889634
Math.LOG10E // 0.4342944819032518
Math.PI // 3.141592653589793
Math.SQRT1_2 // 0.7071067811865476
Math.SQRT2 // 1.4142135623730951
这些属性都是只读的,不能修改。
静态方法
Math对象提供以下一些静态方法。
Math.abs():绝对值
Math.ceil():向上取整
Math.floor():向下取整
Math.max():最大值
Math.min():最小值
Math.pow():幂运算
Math.sqrt():平方根
Math.log():自然对数
Math.exp():e的指数
Math.round():四舍五入
Math.random():随机数
Math.abs()
Math.abs方法返回参数值的绝对值。
Math.abs(1) // 1
Math.abs(-1) // 1
Math.max(),Math.min()
Math.max方法返回参数之中最大的那个值,Math.min返回最小的那个值。如果参数为空, Math.min返回Infinity, Math.max返回-Infinity。
Math.max(2, -1, 5) // 5
Math.min(2, -1, 5) // -1
Math.min() // Infinity
Math.max() // -Infinity
Math.floor(),Math.ceil()
Math.floor方法返回小于或等于参数值的最大整数(地板值)。
Math.floor(3.2) // 3
Math.floor(-3.2) // -4
Math.ceil方法返回大于或等于参数值的最小整数(天花板值)。
Math.ceil(3.2) // 4
Math.ceil(-3.2) // -3
这两个方法可以结合起来,实现一个总是返回数值的整数部分的函数。
function ToInteger(x) {
x = Number(x);
return x < 0 ? Math.ceil(x) : Math.floor(x);
}
ToInteger(3.2) // 3
ToInteger(3.5) // 3
ToInteger(3.8) // 3
ToInteger(-3.2) // -3
ToInteger(-3.5) // -3
ToInteger(-3.8) // -3
上面代码中,不管正数或负数,ToInteger函数总是返回一个数值的整数部分。
Math.round()
Math.round方法用于四舍五入。
Math.round(0.1) // 0
Math.round(0.5) // 1
Math.round(0.6) // 1
// 等同于
Math.floor(x + 0.5)
注意,它对负数的处理(主要是对0.5的处理)。
Math.round(-1.1) // -1
Math.round(-1.5) // -1
Math.round(-1.6) // -2
Math.pow()
Math.pow方法返回以第一个参数为底数、第二个参数为指数的幂运算值。
// 等同于 2 ** 2
Math.pow(2, 2) // 4
// 等同于 2 ** 3
Math.pow(2, 3) // 8
下面是计算圆面积的方法。
var radius = 20;
var area = Math.PI * Math.pow(radius, 2);
Math.sqrt()
Math.sqrt方法返回参数值的平方根。如果参数是一个负值,则返回NaN。
Math.sqrt(4) // 2
Math.sqrt(-4) // NaN
Math.log()
Math.log方法返回以e为底的自然对数值。
Math.log(Math.E) // 1
Math.log(10) // 2.302585092994046
如果要计算以10为底的对数,可以先用Math.log求出自然对数,然后除以Math.LN10;求以2为底的对数,可以除以Math.LN2。
Math.log(100)/Math.LN10 // 2
Math.log(8)/Math.LN2 // 3
Math.exp()
Math.exp方法返回常数e的参数次方。
Math.exp(1) // 2.718281828459045
Math.exp(3) // 20.085536923187668
Math.random()
Math.random()返回0到1之间的一个伪随机数,可能等于0,但是一定小于1。
Math.random() // 0.7151307314634323
任意范围的随机数生成函数如下。
function getRandomArbitrary(min, max) {
return Math.random() * (max - min) + min;
}
getRandomArbitrary(1.5, 6.5)
// 2.4942810038223864
任意范围的随机整数生成函数如下。
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
getRandomInt(1, 6) // 5
返回随机字符的例子如下。
function random_str(length) {
var ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
ALPHABET += 'abcdefghijklmnopqrstuvwxyz';
ALPHABET += '0123456789-_';
var str = '';
for (var i = 0; i < length; ++i) {
var rand = Math.floor(Math.random() * ALPHABET.length);
str += ALPHABET.substring(rand, rand + 1);
}
return str;
}
random_str(6) // "NdQKOr"
上面代码中,random_str函数接受一个整数作为参数,返回变量ALPHABET内的随机字符所组成的指定长度的字符串。
三角函数方法
Math对象还提供一系列三角函数方法。
Math.sin():返回参数的正弦(参数为弧度值)
Math.cos():返回参数的余弦(参数为弧度值)
Math.tan():返回参数的正切(参数为弧度值)
Math.asin():返回参数的反正弦(返回值为弧度值)
Math.acos():返回参数的反余弦(返回值为弧度值)
Math.atan():返回参数的反正切(返回值为弧度值)
Math.sin(0) // 0
Math.cos(0) // 1
Math.tan(0) // 0
Math.sin(Math.PI / 2) // 1
Math.asin(1) // 1.5707963267948966
Math.acos(1) // 0
Math.atan(1) // 0.7853981633974483
————————————————
什么是进制
●进制就是达到指定位置时候进一位
●常见的进制
○十进制: 0 1 2 3 4 5 6 7 8 9 10 11 12 ... 99 100 101
○二进制: 0 1 10 11 100 101 110 111 1000
○八进制: 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21
○十六进制: 0 1 2 3 4 5 6 7 8 9 a b c d e f 10 ... 19 ... 1a 1b 1c 1d 1e 1f 20 21 ...
十进制转换成其它进制
●toString() 方法可以在数字转成字符串的时候给出一个进制数
○语法: toString(你要转换的进制)
○返回值:转换好进制以后的数字
■转换好的数字是字符串类型
var num = 100
console.log(num.toString(2)) // 1100100
console.log(num.toString(8)) // 144
console.log(num.toString(16)) // 64
其它进制转换成十进制
●parseInt() 方法可以在字符串转成数字的时候把字符串当成多少进制转成十进制
○语法: parseInt(要转换的字符串,当作几进制来转换)
○返回值:转换后的数字 你把数字当做几进制使用, 转换成十进制
■结果是数字类型
var str = 100
console.log(parseInt(str, 8)) // 64 把 100 当作一个 八进制 的数字转换成 十进制 以后得到的
console.log(parseInt(str, 16)) // 256 把 100 当作 十六进制 的数字转换成 十进制 以后得到的
console.log(parseInt(str, 2)) // 4 把 100 当作 二进制 的数字转换成 十进制 以后得到的
●作用:toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。
●语法:数字.toFixed(要保留的小数点后的位数)
●返回值:返回一个小数点后有固定的 多少位数字的数字,是一个字符串类型
○小数位不够的时候, 使用 0 补齐
var n = 100.123
// 把 n 保留 2 位小数以后赋值给 res
var res = n.toFixed(2)
console.log(res) //100.12
//返回的是字符串类型
console.log(typeof res); //string
//保留的小数位数多余原数字的小数位数
var res1 = n.toFixed(4)
console.log(res1) //100.1230 保留的位数不够用0补齐
案例-随机整数封装
function fn(a, b) {
// 1. 确定两个数字的大小关系
var min = Math.min(a, b)
var max = Math.max(a, b)
// 2. 求出两数差
var sub = max - min
// 3. 求出 0 ~ sub 之间的随机整数
var r1 = Math.floor(Math.random() * (sub + 1))
// 4. 把 r1 + min
var res = r1 + min
return res
}
//优化上述方案1:
function fn(a, b) {
// 1. 确定两个数字的大小关系
var min = Math.min(a, b)
var max = Math.max(a, b)
return Math.floor(Math.random() * (max - min + 1)) + min
}
// 优化上述方案2:
function fn(a, b) {
return Math.floor(Math.random() * (Math.abs(a - b) + 1)) + Math.min(a, b)
}
案例-封装函数返回随机颜色字符串
文为“2022年第四届数学文化征文活动
数学在折纸设计中的应用
——单五密铺type 14的精确绘图及折纸设计
作者 : 傅薇
作品编号:095
摘要:有什么作品是可以将数学、铺砌艺术、文化图饰、折纸设计联系起来的吗?有,设计密铺类型的镶嵌折纸。本文将阐述15种单一凸五边形密铺中type 14的折纸设计过程及期间借助强大辅助工具——数学的种种应用。
一、密铺/镶嵌介绍
折纸与数学,密铺与镶嵌,不同的概念,却有着紧密的联系。有人可能会说,密铺/铺砌(tiling)与镶嵌(tessellation),在数学里是统一的概念(后文会介绍不同之处),都是指用形状、大小完全相同的几种或几十种平面图形进行拼接,使彼此之间不留空隙、不重叠地铺成一片。镶嵌最早可以追朔到大约公元前4000年由苏美尔人用于建造装饰墙,后来逐渐被人们用于铺砌地砖等,其中比较知名的有开罗镶嵌(Cairo tiling)、Marjorie Rice设计被用于铺设美国数学学会(MAA)华盛顿总部大厅地板的versatile图案,以及2020年诺贝尔物理学奖得主罗杰·彭罗斯(Roger Penrose)设计的彭罗斯镶嵌(Penrose tiling)。前两种分属于单一凸五边形密铺中的type 4和type 5,归属于周期密铺;而第三种彭罗斯镶嵌属于非周期密铺。如图所示:
经过前面的计算,得出了与资料一致的近似角度。但对于折纸来说,近似角度是不行的,想要进行折纸设计,必须在折纸软件里画出精确图示,否则边不重叠、点不重合。
其实,根据上题(图片)中的方程: 也可以用精确边长来表示/限定角度:
根据实际情况取正值,做出各边长后,则角度可确定。
不仅如此,根据上题(图片)中的一次方程还可以换种方法解题,得出同样的结论。(下面第一图中是将该一次方程转化为3AB-2CD=BC )。经过前面的计算,得出了与资料一致的近似角度。但对于折纸来说,近似角度是不行的,想要进行折纸设计,必须在折纸软件里画出精确图示,否则边不重叠、点不重合。
根据计算结果,可以在折纸软件中画出需要的角度(小数点后的数字无限匹配)。下面介绍一下长度的绘制方法(笔者采用第三种方法)。
图 2.7: 绘制长度的三种方式(函数曲线、海螺图、勾股三角形).
图 3.6: type 14图示(折纸成品预呈现的紧凑结构).
已发文章>>
001 阅读《数学的故事》有感
002 我想和数学谈场恋爱
003 数学“化错”中的美
004 让数学思考成为数学课堂的主旋律
005 卢梭的“错”?
006 数学教学案例《找次品》
007 基于优化学生数学思维的高效课堂创建——以等腰三角形的判定一课为例
008 从特殊到一般,引导数学思维
009 数学文化融入家庭教育的研究
010 sin 震荡函数的图像分析
011 四阶幻方的“太极图”性质
012 无理数的定义和实数理论的建立
013 一个容易被忽视的问题——数学文化
014 “双减”背景下初中数学学科的合作学习方式探究
015 中学数学德育渗透的方法与路径
016 《数学的力量》读后感
017 基于数学文化的单元统整教学设计——以“圆的认识与面积”教学为例
018 有助于数的理解的数字圈环
019 以折叠为例,探究生长型数学教学模式
020 我从事数学科普写作的经验与启示
021 在阅读中滋长智慧——读《教育智慧从哪里来》有感
022 学习数学史 做数学的使者
023 开数学文化之窗 启数学文化魅力——阅读《美丽的数学》有感
024 “文学独白”——数学教学因你而精彩
025 如何用多面体三等分正方体
026 HPM视角下《圆的周长》教学设计
027 被误解的“勾股定理”
028 好玩的数学
029 帮小青蛙设计一个井
030 万物的基础——数学——读《从一到无穷大》有感
031 读《孙子算经》鸡兔同笼问题有感
032 HPM视角下高中数学多样化作业的设计
033 攀越高峰的领路人——数学文化
034 我的好兄弟:数学
035 细嗅数学文化之香
036 藤蔓的喜悦
037 物理力学中数学的影子
038 复数外传
039 函数的历史和发展
040 数学文化与我
041 数学之趣
042 探索数学知识背后的秘密
043 数学文化和我的数学学习
044 古代算数几何形体——阳马与鳖臑
045 数学文化与我的数学学习
046 我与数学文化
047 “形象”的数学
048 站在巨人的肩膀上学习数学
049 从数学文化和个人影响的角度剖析对数的历史
050 论数学文化
051 我与数学文化
052 正弦定理的源起与应用
053 数学文化融入初中数学教学的实践与思考
054 给数字爱好者的1个全新的0至9数字思考挑战及应用问题
055 并不需要的“承重墙”与数学课改中的问题 —— 兼与马立平博士商榷
056 奇妙的规律
057 生活中的“家常便饭”——数的表示方法
058 读《黄东坡智慧大讲堂——带你发现数学之美》有感
059 通识教育视角下初中数学思维培养从直观向抽象过渡的研究
060 读《古今数学思想》有感
061 为什么圆的面积的导数等于周长?球的的体积的导数等于其表面积?
062 《奇妙的数学文化》读后感
063 数学文化视角下《九宫图的奥秘》教学设计
064 关于毕达哥拉斯定理适用蒙特卡罗方法验证的探讨
065 遨游数学星空,体味数学奇妙
066 核心素养下的,数学文化中的美育渗透
067 探寻数学之奇,欣赏数学之美
068 框架思维——读《数学这样学就对了》有感
069 从肌肉记忆到《几何原本》第四公理
070 《数学大世界》读后感
071 除法才是四则运算的基础:兼与马立平博士商榷
072 从“海盗分金”到“囚徒困境”——博弈该如何进行?
073 “0”与“1”的辩证法和数学学习之路
074 感悟数学
075 我的好伙伴:数学
076 一则寓言故事带来的教学启发
077 神奇的数学 ——最大公因数、最小公倍数
078 怎样学好数学
079 “7”真是个神奇的数字
080 《一个定理的诞生:我与菲尔茨奖的一千个日夜》读后感
081 梦想中的职业,都与数学息息相关
082 哪⾥有数,哪⾥就有美⸺读《数学之美》有感
083 探索信息技术融入初中数学文化实践活动
084 秦九韶数学案——随机抽样统计推理的反问题
085 第四次数学危机
086 基于三阶魔方的STREAM教学设计
087 趣味家庭作业 引领学生学习
088 数学之道
089 了解微积分后的那些事……
090 不会?不,会
091 一个偶然的发现——完全数及其基因构造数列
092 在规矩方圆中求索——“圆的认识”的文化育人视界
093 欧拉公式的几何证明与意义
*请认真填写需求信息,我们会在24小时内与您取得联系。