程序员的数学 读书笔记

Categories: Development Notes; Tagged with: ; @ May 1st, 2016 17:57

我相信多数人看到这本书之后可能都会轻轻一笑,这太简单了。可对我来说,大多数概念都已经变的很陌生, 粗略读了一遍,顺便复习曾经熟悉的那些数学基础。

零,二进制,十进制,指数

  • 十进制/二进制转换
  • 十进制/罗马数字转换
  • 指数: N^a X N^b = N ^(a+b)
  • 给定一个十进制数字,如何检查该数字是不是2的平方?O(log n) ? O(1)?
  • Counting Bits

余数, 周期性, 分组

排列组合

三种药品,A, B, C 共取100粒,每种至少一粒,不考虑顺序,共有多少种组合方式?

递归

指数

  • 一张厚度为1 mm纸只需要对折39次就可以达到39万公里 -地球与月球之间的距离
  • Binary search algorithm

 

 

[一日一类_007]TopLevel: String

Categories: 垃圾山; Tagged with: ; @ November 10th, 2008 23:24

String类是ActionScript中描述字符串的类. 该类提供了处理字符串的属性与方法. 可以使用String()方法将各种类型的对象转换为Sring.

String是AS中文本的基础.一个字符串由零个或零个以上的字符组成.AS支持Unicode和ASCII两种文本编码格式.String可以通过直接赋值和new关键字两种方式创建.由单引号或双引号表示,必要的时候应使用转义字符’/’.

Public Properties

length:int

返回该String的长度.

Public Methods

String(val:String): 构造函数,新建一个String.
charAt(index:Number=0):Number: 返回在某个inidex的字符
charCodeAt(index:Number=0):Number  返回某个index的字符对应的Unicode字符码
concat(..args):Stirng: 连接两个字符串.
fromCharCode(charCodes):String 将某Unicode字符码转换为String
indexOf(): 从左向右找到的第一个目标的index
lastIndexOf(): 从左向右最后一个…也就是从右向左第一个.
localeCompare(): 判断连个字符串是否完全相同, 若返回值为0,则表示相同,其他值表示不同
replace:替换
search(): 从左向右第一个目标的index
slice(): 返回连个index之间的String
split(): 使用间隔符,将String分割为多个String,并放入数组中.
subStr(): 从某index开始向后的特定数目内返回的String
subString(): 类似slice();

public function init():void {
	var s:String = "liguoliang";
	var s1:String = ".com";
	var s2:String = "liguoliang";
	trace("s的长度: " + s.length);
	trace("第0个字符: " + s.charAt(0));
	trace("s连接s1: " + s.concat(s1));
	trace("65对应的char: " + String.fromCharCode(65));
	trace("第一个l的位置" + s.indexOf("l"));
	trace("从index为2的字符开始向右找到的第一个l的index: " + s.indexOf("l",1));
	trace("从右向做找到的第一个l的index: " + s.lastIndexOf("l"));
	trace(s.localeCompare(s2)); //如果返回值为零,则表示两个字符串完全相同, 如果返回值非零,则表示不同.
	trace("将li替换为s2: "+ s.replace("li", s2) + "  " + s);
	trace("从左向右搜索到的第一个L: " + s.search("l"));
	trace("子字符串: " + s.slice(0, 1)); //不包括最后一个...如果参数为空,则置为-1.两参数都为空时,取全部
	trace("子字符串:从index为0开始,取两个字符 " + s.substr(0, 2));//也不包括最后一个...
	trace("子字符串: " + s.substring(0, 1));
	trace(s.split("i")); //返回l,guol,ang,若将最大值限制为2,则表示数组中进放入2个返回l,guol
}

字符串大小写转换:flexstr.toLowerCase(); flexstr.toUpperCase();
其他对象转换为String.在默认情况下,所有的AS对象都可以转换为String类型.每一个类都有一个toString方法.
通过toString可以将对象转换为String.

[千斤顶之一日一类006]TopLevel:Math

Categories: Flex; Tagged with: ; @ November 7th, 2008 0:05

Math类中包含了常用数学运算的函数与值, 如正弦,PI等. 我那曾经扎实的数学根基竟然经不起时间的考验—似乎什么都记不起来了…API太高估我的实力了, 只给出了一个角度弧度互换的公式…

Math类中最多的函数莫过于正弦余弦,正切余切之类的了,想了半天才想起来一个正弦, 概念想不起来了,只是记得个曲线图….

public function init():void {
trace(Math.abs(-1)); //1
trace(Math.PI); //3.141592653589793
trace(Math.sin(Math.PI/2));//1
trace(Math.asin(1)); //1.5707963267948966

trace(Math.random());

trace(Math.round(2.1)); //四舍五入 2
trace(Math.ceil(2.1)); //首位加一 3
trace(Math.floor(2.1)); //收尾 2
}

注意部分函数的参数不是角度,而是弧度.

角度与弧度的换算:[API还是比较体贴的…]

radians = degrees * Math.PI/180
degrees = radians * 180/Math.PI



// Proudly powered by Apache, PHP, MySQL, WordPress, Bootstrap, etc,.