比记号 与 拓展比记号

比记号

  比记号 $[n]$ , 读作 "比n" .

    $[n] = \left\{ \begin{aligned} & 1 & , n > 0 \\ & 0 & , n = 0 \\ & -1 & , n < 0 \end{aligned} \right.$ .

  直观地刻画了 $n$ 的正负性.

  定理1 (分拆定律)  $[nm] = [n][m]$ .

  推论1  $[n] = [\frac{1}{n}]$ .

  推论2  $[x(a + b)] = [x][a + b]$ .

  推论3  $[\frac{n}{m}] = [n][m]$ .

拓展比记号

  拓展比记号 $[n, m]$ , 读作 "n比m" .

    $[n, m] = [n - m]$ .

  直观地刻画了 $n$ 与 $m$ 的大小关系.

  定理2(线性性质)

    $[kn, km] = [k][n, m]$ .

    $[n + k, m + k] = [n, m]$ .

  我们可以基于这条性质, 实现同时增加或减去一个数, 或者同时乘或除一个数(通分, 约分).

应用

  以一个例子来说明这种记号的简洁之处.

  

  从 A 行走到 B , 总路程为 2S , 有两种策略.

    ① 前一半的路程以 V1 的速度, 后一半的路程以 V2 的速度;

    ② 前一半的时间以 V1 的速度, 后一半的时间以 V2 的速度.

  问哪种耗时少?

  前一种耗时为 $\frac{2S}{V1 + V2}$ .

  后一种耗时为 $\frac{S}{V1} + \frac{S}{V2}$ .

  $$\begin{aligned} & [前一种耗时, 后一种耗时] \\ & = [\frac{2S}{V1 + V2}, \frac{S}{V1} + \frac{S}{V2}] \\ & = [\frac{1}{V1 + V2}, \frac{V1 + V2}{V1V2}] \\ & = [V1V2, {(V1 + V2)} ^ 2] \\ & = [-V1^2 - V1V2 - V2^2] = -1 \end{aligned}$$

  所以 前一种耗时 < 后一种耗时 .

时间: 08-11

比记号 与 拓展比记号的相关文章

算法中的渐进记号

前言 在学习计算机算法时,知道插入排序的时间复杂度是O(n2),那O记号到底是什么意思呢?本文主要介绍几个算法分析时用到的记号. 大O记号 定义:O(g(n)) = { f(n) : 存在正常数c和n0 ,使对所有的n >= n0,都有 0 <= f(n) <= cg(n) }.大O记号给出函数的渐进上界. , 则可以表示为 f(n) = O(n2).证明: 要使得 0 <= f(n) <= cg(n) 存在c = 9/2 ,n0 = 1,使得对所有的n >= n0都有

图像信号分析基础

图像信号的数学表示 像素的邻域和邻接 邻域分类: 4-邻域 N4(p) 象素p(x,y)的左右上下4个像素. D-邻域 ND(p) 象素p(x, y)的4个对角邻近像素. 8-邻域 N8(p) 象素p(x, y)的左.右.上.下.左上.右上.左下.右下8个像素. 象素的邻接 定义: 1.若q∈N4(p)或者p∈N4(q) 则称p与q 4-邻接 2.若 q∈N8(p)或者p∈N8(q) 则称p与q 8-邻接 关系: 4-邻接必8-邻接,反之不然 像素间的连通性 距离度量 图像的运算 算术和逻辑运算

【转】MUD教程--巫师入门教程4

我们再次复习一下clean_up()函数返回1的含义,如果clean_up()函数返回1,则MUDOS在这一次的调用时不会做其的任何举动,但到了下一次想调用的时间里,还将再次调用这个对象的clean_up()函数.那么从这可以看出,有以下四种情况不会将其清除出内存:一.非clone出来并且有no_clean_up参数的对象:二.玩家永远不会三.处于一个还存在的环境里四.自己里面存在着玩家 也就是MUDOS定时摧毁内存不需要的对象是由外向内的,比如一个房间,系统只要检查这个房间里没有no_clea

SQLite 学习笔记

SQLite 学习笔记. 一.SQLite 安装    访问http://www.sqlite.org/download.html下载对应的文件.    1.在 Windows 上安装 SQLite.需要下载 sqlite-shell-win32-*.zip 和 sqlite-dll-win32-*.zip 压缩文件.        创建文件夹 C:\sqlite,并在此文件夹下解压上面两个压缩文件,将得到 sqlite3.def.sqlite3.dll 和 sqlite3.exe 文件.   

遍历数组按学号找人,若找到则输出信息,否则输出&quot;查无此人&quot;

//建立一个类类型的数组,并向这个数组内添加学生信息,包括姓名和年龄等 **********************学生类************************** package practise03_1; public class Student { private String name; private int age; public String getName() { return name; } public void setName(String name) { thi

#和##在宏定义中使用问题

转自:http://www.linuxidc.com/Linux/2014-06/102925.htm 有一道经典的C语言问题,关于宏定义中#和##符号的使用和宏定义展开问题 程序如下: #include <stdio.h>#define f(a,b) a##b#define g(a)  #a#define h(a) g(a) int main(){        printf("%s\n", h(f(1,2)));        printf("%s\n&quo

[MOOC笔记]第一章 绪论(数据结构)

1.  计算 学习DSA的目的是实现有效的和高效的计算,同时在资源消耗的方面做到足够的低廉. 计算 = 信息处理:借助某些工具,遵照一定规则,以明确而机械的形式进行. 计算模型 = 计算机 = 信息处理工具 算法:在特定的计算模型下,旨在解决特定问题的指令序列. 算法的要素: 输入 待处理的信息(问题) 输出 经处理的信息(答案) 正确性 的确可以解决指定的问题 确定性 任一算法都可以描述为一个由基本操作组成的序列 可行性 每一基本操作都可实现,且在常数时间内完成 有穷性 对于任何输入,经有穷次

1.尽量以const ,enum,inline替换define

1.#define为预处理阶段命令 原因:有可能记号名称没有进入记号表,而出现编译错误,即编译器并没看到过该定义. class专属常量const 一般定义为static,保证该常量至多有一份实体. 枚举类型值可充当intS型使用.enum{num=3};现在num就是3的一个记号. 对于取地址操作:const是合法的,但是enum和define不能进行取地址操作. #define定义函数宏的时候容易产生歧义.(括号分配等等,计算顺序..) 宏无法定义成private,但是内联函数inline可以

科目二驾考技巧

转自http://jingyan.baidu.com/article/a378c96087ae45b3282830e5.html 方向盘:刚来学开车,首先要练的就是手握方向盘的学习.用三九点方式握方向盘,一圈一圈的打,熟练之后,最好把头伸出去看看,打半圈方向盘车轮转动多少度,打一圈或者打死方向盘车轮又是转多少度,对此心里最好有了解.对以后的学倒车,走S型的弯道是有帮助的.   倒车:在科目二考试中,倒车这项考试,10个过不了,就有60%的人不过倒车关.在这个学习当中,倒车用时最久,所以熟练掌握倒