浮点数

浮点数二分算法模板

不问归期 提交于 2019-11-29 00:41:43
bool check(double x) {/* ... */} // 检查x是否满足某种性质 double bsearch_3(double l, double r) { const double eps = 1e-6; // eps 表示精度,取决于题目对精度的要求 while (r - l > eps) { double mid = (l + r) / 2; if (check(mid)) r = mid; else l = mid; } return l; } 一般取eps的精度比题目中要求的精度大于2 模板题: 数的三次方根 给定一个浮点数n,求它的三次方根。 输入格式 共一行,包含一个浮点数n。 输出格式 共一行,包含一个浮点数,表示问题的解。 注意,结果保留6位小数。 数据范围 −10000≤n≤10000 输入样例: 1000.00 输出样例: 10.000000 #include <iostream> using namespace std; int main(){ double x,l=-10000,r=10000; cin>>x; while(r-l>1e-8){ double mid=(l+r)/2; if(mid*mid*mid>=x) r=mid; else l=mid; } printf("%lf",l);//double默认保留6位小数 return

mongodb_数据类型(null/字符串/数字/日期/内嵌文档/数组等)

本秂侑毒 提交于 2019-11-29 00:34:30
MongoDB的文档类似于JSON,JSON只是一种简单的表示数据的方式,只包含了6种数据类型(null、布尔、数字、字符串、数组及对象). JSON的数据类型的局限性: 1.无日期类型,对日期型的处理较为繁琐 2.无法区分浮点数和整数、32位和64位 3.其他类型表示局限 如函数、正则式等 Mongodb使用BSON(Binary JSON)来组织数据,BSON还提供日期、32位数字、64位数字等类型。下面为在mongodb shell中这些类型在文档中是如何表示: 1、null 用于表示空值或者不存在的字段。 {"name":null} 2.布尔 布尔类型、即true和false {"flag":true}/{"flag":false} 3.数字 mongodb中分32位整数、64位整数、64位浮点数 >javascript只支持64位浮点数,shell中对32位的整数会进行自动的转换: 默认情况下,shell中的数字被mongdb当做是双精度。若从数据库中获取一个32位整数,修改了文档后在将文档保存到数据库的时候,这个整数已被转换成了浮点数(整数不变也会转换)。 >shell中会用内嵌文档的方式显示64位整数: 数字智能表示为双精度数(64位浮点数)的另一个问题是,有些64位的整数并不能精确的表示64位浮点数。因此要是存入了一个64位整数然后在shell中查看

MongoDB中的数据类型

空扰寡人 提交于 2019-11-29 00:30:25
MongoDB支持多种数据类型作为文档中的值。 基本数据类型 MongoDB的文档类似于JSON,在概念上和JavaScript中对象神似。JSON是一种简单的表示数据的方式,仅包含6种数据类型。这带来很多好处:易于理解、易于解析、易于记忆。但另外一方面,JSON的表现力也有限制,因为只有 null、布尔、数字、字符串、数组和对象几种类型。 虽然这些类型的表现已经足够强大,但是对于绝大多数应用来说还需要另外一些不可或缺的类型,尤其是与数据库打交道的那些应用。例如,JSON没有日期类型,这会使得出来本来简单的日期问题变得非常繁琐。只有一种数字类型,没法区分浮点数和整数,更不能区分32位和64位数字。也没有办法表示其他常用类型,如正则表达式或函数。 MongoDB在保留JSON基本的键/值对特性的基础上,添加了其他一些数据类型。 下面列出了MongoDB通常支持的一些类型,同时说明了在shell中这些类型是如何表示为文档的一部分的。 - null 用于表示空值或者不存在的字段。 - 布尔 布尔类型有两个值true和false。 32位整数 shell中这个类型不可用。前面提到,JavaScript仅支持64位浮点数,所以32位整数会被自动转换。 - 64位整数 shell也不支持这个类型。shell会使用一个特殊的内嵌文档来显示64位整数。 - 64位浮点数

MongoDB入门2——MongoDB数据类型

无人久伴 提交于 2019-11-29 00:29:36
MongoDB的文档其实和JSON很类似,与JavaScript的对象概念也很像。但是MongoDB的数据类型更加丰富。下面我们一一介绍MongoDB的数据类型。 数据类型 描述 举例 null 表示空值或者未定义的对象 {“x”:null} 布尔值 真或者假:true或者false {“x”:true} 32位整数 32位整数。shell是不支持该类型的,shell中默认会转换成64位浮点数 64位整数 64位整数。shell是不支持该类型的,shell中默认会转换成64位浮点数 64位浮点数 64位浮点数。shell中的数字就是这一种类型 {“x”:3.14,“y”:3} 字符串 UTF-8字符串 {“foo”:“bar”} 符号 shell不支持,shell会将数据库中的符号类型的数据自动转换成字符串 对象id 文档的12字节的唯一id {“id”: ObjectId()} 日期 从标准纪元开始的毫秒数 {“date”:new Date()} 正则表达式 文档中可以包含正则表达式,遵循JavaScript的语法 {“foo”:/foobar/i} 代码 文档中可以包含JavaScript代码 {“x”:function() {}} 二进制数据 任意字节的二进制串组成,shell不支持 最大值 表示可能的最大值,shell不支持 最小值 表示可能的最小值,shell不支持

MongoDB数据类型

半腔热情 提交于 2019-11-29 00:28:41
参考地址: http://wawlian.iteye.com/blog/1303276 MongoDB 的文档其实和 JSON 很类似,与 JavaScript 的对象概念也很像。但是 MongoDB 的数据类型更加丰富。下面我们一一介绍 MongoDB 的数据类型。 数据类型 描述 举例 32 位整数 32 位整数。 shell 是不支持该类型的, shell 中默认会转换成 64 位浮点数 64 位整数 64 位整数。 shell 是不支持该类型的, shell 中默认会转换成 64 位浮点数 64 位浮点数 64 位浮点数。 shell 中的数字就是这一种类型 { “x” : 3.14 , “y” : 3} 字符串 UTF-8 字符串 { “foo”:“bar”} 符号 shell 不支持, shell 会将数据库中的符号类型的数据自动转换成字符串 对象 id 文档的 12 字节的唯一 id { “id”: ObjectId()} 日期 从标准纪元开始的毫秒数 { “date”:new Date()} 正则表达式 文档中可以包含正则表达式,遵循 JavaScript 的语法 { “foo”:/foobar/i} 代码 文档中可以包含 JavaScript 代码 { “x” : function() {}} 二进制数据 任意字节的二进制串组成, shell 不支持 最大值

Python:列表list

那年仲夏 提交于 2019-11-29 00:19:06
问题11:如何进行反向迭代 & 如何实现反向迭代 # 有关列表问题,参考: Python:列表list 案例: 需求:实现一个连续浮点数发生器FloatRange(和range类似),根据给定范围(start,end)和步进值(step),产生一系列连续的浮点数; 如迭代FlartRange(3.0, 4.0, 0.2)可产生序列: 正向:3.0 -> 3.2 -> 3.4 -> 3.6 -> 3.8 -> 4.0 反向:4.0 -> 3.8 -> 3.6 -> 3.4 -> 3.2 -> 3.0 class FloatRange: def __init__(self, start, end, step = 0.1): self.start = start self.end = end self.step = step def __reversed__(self): t = self.end while t >= self.start: yield t t -= self.step def __iter__(self): t = self.start while t <= self.end: yield t t += self.step # 此循环,实例化时自动调用__iter__()方法,而不是__reversed__()方法; for x in FloatRange(1.0,

阿里云前端周刊 - 第 28 期

倾然丶 夕夏残阳落幕 提交于 2019-11-29 00:04:08
推荐 1. 现代 JavaScript 语法清单 https://github.com/mbeaudru/modern-js-cheatsheet#modern-javascript-cheatsheet 本文涉及到了现代项目开发中常用的 JavaScript 语法使用以及示例代码的清单 ;本指南并不打算从零介绍 JavaScript,而是对于那些有一定基础知识的开发者提供便捷的工具手册。本文依次介绍了变量声明与使用、箭头函数、默认参数、对象解耦、数组使用、扩展操作符、对象属性、Promise、字符串、模块、类、异步编程等内容; 2. 如何优雅的编写JavaScript代码 https://mp.weixin.qq.com/s/PUpZTnCf3qilVWhU-bTC0A 几乎每个大一点公司都有一个“运行时间长,维护的工程师换了一批又一批”的项目,如果参与到这样的项目中来,大部分人只有一个感觉——『climb the shit mountain』。所以我们经常会说谁谁谁写的代码就像排泄物一样,那么在项目中,我们应该编写可维护性良好的代码。 3. React 16 Fiber源码速览 http://zxc0328.github.io/2017/09/28/react-16-source/ React 16在近期发布了。除了将备受争议的BSD+Patents协议改为MIT协议之外

关于浮点数的取值范围以及精度的问题

冷暖自知 提交于 2019-11-28 19:58:05
根据最广泛采用的IEEE754标准规定,float数据类型长度为32位,其中最高位为符号位,中间8位为指数位,最后23位作为尾数位。因此float可以指示的范围(-3.4E+38)~(3.4E+38),这样的数值范围已经很大了基本能够满足我们的需要了,但是有一个问题就是精度的问题,23位的尾数能表示的最大范围是2^23−1=8388607,因此float数的十进制精度只有6-7位,所以在使用的时候要关注其精度。 同理double的尾数由23位扩展到52位,阶码由8位增加到了11位,计算方法不变。其指示范围为-1.7E+308~1.7E+308,其精度则为2^52-1=4503599627370495,为16位,最低可以保证有15位的精度。 来源: https://www.cnblogs.com/m-zhang-yang/p/11425147.html

软件设计师考试之计算机系统知识学习

二次信任 提交于 2019-11-28 19:49:11
概要 考试前提 计算机系统硬件基本组成 计算机系统硬件组成 计算机系统由软件和硬件组成。 硬件系统主要由,运算器,控制器,存储器,输入设备,输出设备。五部分组成。 其中运算器和控制器被集成在CPU中,他们和存储器一起协调工作类似于人们的脑子;其中输入设备如键盘,鼠标,类似于人们的眼睛和耳朵;输出设备,显示器,类似于人的手和嘴。 中央处理器 CPU :取指令 分析指令 执行指令 CPU的功能: 程序控制,操作控制,时间控制,数据处理。 CPU的组成:cpu主要由运算器,控制器,寄存器和内部总线组成。 运算器 作用: 数据处理,完成算术运算和逻辑运算 组成: 算术逻辑单元(ALU) ,累加寄存器(AC),数据缓冲寄存器(DR),状态条件寄存器(PSW)等 控制器 作用: 控制CUP的工作,指令控制逻辑,时序控制逻辑,中断控制逻辑。 指令控制逻辑: 取指令,分析指令,执行指令 指令寄存器(IR):暂存从内存储器取到缓冲寄存器中的指令 程序计数器(PC):寄存信息和计数 地址寄存器(AR):保存当前CPU所访问的内存单元的地址。 指令译码器(ID):对操作码字段进行分析解释和识别该指令规定的操作,向操作控制器发出具体的控制信号,控制各个部件工作,完成所需的功能。 时序控制逻辑: 为每条指令按时间提供应有的控制信号。 中断控制逻辑: 用于控制各种中断 运算器受控制器控制 多核cpu 不是重点

常用正则表达式

五迷三道 提交于 2019-11-28 19:20:39
http://www.cnblogs.com/lvcao20/archive/2008/07/16/1244587.html 因为平常可能在表单验证的时候,用到的比较多。特发出来,让各位朋友共同使用。 匹配中文字符的正则表达式: [\u4e00-\u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^\x00-\xff] 评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 匹配空白行的正则表达式:\n\s*\r 评注:可以用来删除空白行 匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?|<.*? /> 评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力 匹配首尾空白字符的正则表达式:^\s*|\s*$ 评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式 匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 评注:表单验证时很实用 匹配网址URL的正则表达式:[a-zA-z]+://[^\s]* 评注:网上流传的版本功能很有限,上面这个基本可以满足需求 匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_