
数学和算法
光宇广贞
有志于学,虽草庐中应可知天下事!
展开
-
独一无二的 153 ?竟然没有可与之比肩的第二个数了么?
153!首先,这个数神奇,它是一个“水仙花数”,有关“水仙花数”的资料,请简单查阅百度百科: http://baike.baidu.com/view/152077.htm换一种视角,“水仙花数”的算法本身提供了一种变换,我们以这种变换对整个“数字宇宙”建立参考坐标,则 153 成为了该宇宙的中心!该参考坐标的数学表示如下: 由 Narcissus ( n ) 表示“3 次水仙花原创 2009-07-16 10:45:00 · 2621 阅读 · 3 评论 -
一个小的数学期望的公式变换
http://topic.youkuaiyun.com/u/20090615/08/b1b3a4c0-2084-41d1-82c9-7b3527c5a286.html?seed=2084716755这个题很没劲,反正既然写完了,就贴出来吧。原创 2009-06-15 19:33:00 · 3071 阅读 · 5 评论 -
谁取到最后一个谁输
有一个贴子让我想起了一道大一时做的题:总共有 M 个球儿,每次最多取 N 个,最少取 1 个,你和电脑取,你可以来选择谁先取,谁取到最后一个谁输。算法很是巧妙,取一个模就行了。哈哈哈哈……唉……差一点忘了怎么算了……这才几年的工夫……真是怀念啊! 人生经历的点点滴滴,都不能忘!怀念我的北京邮电大学软件工程的大一半年时光!有志于学,虽草庐中应可原创 2009-06-12 13:09:00 · 2660 阅读 · 0 评论 -
解析 Miller - Rabin 素数测试思想
1、Miller - Rabin 素数测试定义:令 n - 1 = ( 2^s ) * d,其中 s 是非负整数,d 是正奇数。若 a^d =1 ( mod n ) 或 a^((2^r)*d) = -1 ( mod n ),0 定理:若 n 为奇合数,则 n 通过以 a 为基的 R-M 测试的数目最多为 ( n - 1 ) / 4, 1 这便是 Miller - Rabin 素数测原创 2009-06-11 23:32:00 · 6566 阅读 · 1 评论 -
智力题:将 4444 的 4444 次方连求三次位数和之数
http://topic.youkuaiyun.com/u/20090820/10/859aeb2a-dfee-4391-80cf-d9189c2c6489.html?18765 这贴子里面的一道题。 原题:A 为 4444,B 为 A 的 A 次方,C 为 B 的各位数字之和,D 为 C 的各位数字之和,E 为 D 的各位数字之和,则 E 值为多少? 首先原创 2009-08-20 14:50:00 · 6061 阅读 · 6 评论 -
求次幂之个位数
坎儿妹问我这个……我一看,太简单了,写出来吧gave a and b,how to know the a^bs the last digit numbervoid main(){ const int n[10][4] = { { 0, 0, 0, 0 }, { 1, 1, 1, 1 }, { 6, 2,原创 2009-06-05 20:22:00 · 1070 阅读 · 0 评论 -
各位和整除数的问题
http://topic.youkuaiyun.com/u/20090531/20/b001f8fb-fe3e-4718-b109-1aa107a38d9c.html设某特定的数为,该数的所有位数之和可被该数整除,比如说 12 => 1 + 2 = 3|12。给定 n,找出所有小于 n 的满足该条件的整数的个数。 若可以这么想:比如说,举一个响亮点儿的数:69吧。6 + 9 = 15->原创 2009-06-04 19:16:00 · 2102 阅读 · 5 评论 -
大数阶乘
#include #define N 10 //计算N的阶乘,修改N的定义可计算10000以内任意数的阶乘void main(){ int a[N] = { 1 }, i, c, m, n; for( m = 0, n = N ; n > 1; n-- ) { for( i = c = 0; i <= m; i++ )原创 2009-06-04 18:40:00 · 2930 阅读 · 7 评论 -
求大数n!的位数
也是坛里面的问题:已知正整数 n 求 n!的十进制数共有多少位。这个 n! 怎么办?n! 的增长率是很可怕的,比 e^n 还要快,其实就是 O(n^n),当 n 值“较”大时,就不能忍了。这个“较”有多大呢?等后面算完了就知道了。递归算 n!,便是尾递归来说,便是栈展得开,效率也受不了,便是效率受得了,也没地儿放。所以绝对不能去算 n!但只求位数的话,这比较原创 2009-06-08 15:16:00 · 1525 阅读 · 1 评论 -
Linux 下的 fork()
for( i = 0; i < 5; i++ ) if( fork() == 0 ) continue; 共生成多少个子进程?简查了一下 fork() 的知识,它调用一次,返回两次,进入子进程并返回一次,然后退到父进程再返回一次,子进程中返回值为 0,父进程中返回的是子进程的进程号。答案是 31。如上图所示,这就是一个二项树,二原创 2009-06-17 15:38:00 · 3918 阅读 · 4 评论 -
判断一个整型值有无符号
http://topic.youkuaiyun.com/u/20090618/18/b892dbeb-2e2a-43cf-91bd-94ce661ad104.html几种有意思的方法:第一种:#define ISUNSIGNED(a) (a >= 0) && ( ~a >= 0) 第二种:a 为待测数 int b = -1;if ( a < 0 ){ c原创 2009-06-18 19:08:00 · 1623 阅读 · 1 评论 -
ABCD*E=DCBA
ABCD*E=DCBAE 为 4由 A 小于 D,和 D * E % 10 = A,和 A * E 2BC8 * 4 = 8CB2,由左数第二位推知,B 只能为 0、1、2,B 为 0,得 4C % 10 = 7,无解,B 为 2,同,故 B = 1,则 4C % 10 = 8,C 为 2 或 7。可推知 C 为 7。2178 * 4 = 8712。原创 2009-06-21 16:16:00 · 4407 阅读 · 1 评论 -
通过 Fibbonacci 理解 CPS;通过 CPS 理解 Fibbonacci
见《函数式编程的魅力:CPS》文中图一、图二代码。通过 Fibbonacci 理解 CPS: CPS 的基本形式是这样的,对于 FuncCps ( elem cont ) 方法,在 FuncCps 内部实现 cont ( f ( elem ) ),更确切地说,是在 FuncCps 内部实现 SomeFunc ( cont ( f ( elem ) ) ),原创 2009-10-16 22:32:00 · 1405 阅读 · 1 评论 -
咖喱函数(Curry Func)
文 / 李博(光宇广贞)Wikipedia, the Imperialistic encyclopedia In mathematics and computer science, curring, invented by Moses Schönfinkel and later re-invented by Haskell Curry, is the technique o原创 2009-09-20 22:13:00 · 3639 阅读 · 2 评论 -
生日悖论的泛化问题的讨论
著名的生日悖论,不多言。见维基百科:http://zh.wikipedia.org/wiki/%E7%94%9F%E6%97%A5%E6%82%96%E8%AE%BA见百度百科:http://baike.baidu.com/view/859474.htm摆渡、喂鸡,排名不分先后。 维基里面提到了泛化推广。生日问题的经典思路就是先计算“互不干扰”的概率,然后用原创 2009-07-10 17:01:00 · 2737 阅读 · 2 评论 -
“人狼羊草”的计算机模拟暴力枚举
问题:人载狼羊草过河,一次摆渡除了人只能载一样,没人时,狼与羊、羊与草均不可独处。问如何过河。#define STATE char#define PATH charSTATE State[8] = { 1 };PATH Path[16];char* Bios[] = { "草", "羊", "狼", "人" };void Ferry ( int state, int d原创 2009-07-09 23:52:00 · 4507 阅读 · 14 评论 -
2006 的 2007 次方与 2007 的 2006 次方的比值
由 ln ( 1 - x ) 的展开式可得 x 原式等于 2006 * [ ( 2006 / 2007 ) ^ 2006 ] 而 2006 / 2007 = 1 - 1 / 2007 故原式转为 2006 * [ exp( - 1 / 2007 ) ^ 2006 ] = 2006 * [ exp ( - 2006 / 2007 ) ],就好算了。答案是 738,误差在万分之二,可以接受原创 2009-07-05 18:42:00 · 1206 阅读 · 2 评论 -
甲始终领先乙的概率
http://www.tianya.cn/techforum/Content/71/535787.shtml天涯上给出了方法,但是我觉得说得并不完备,也就是不能证明其充要性,故而于此,在它的基础上给出我的方法。投票,甲得 M,乙得 N,票一张一张计,求计票过程中甲始终领先乙的概率(M>N)。既无法一一枚举,故而简化之,以六票分甲四乙二为例。甲票标为 A,乙票标为 B,枚举所原创 2009-06-26 19:32:00 · 3130 阅读 · 0 评论 -
四人过桥——微软题的计算机模拟算法
问题:四人夜过桥,步行时间分别为 1、2、5、10 分钟,四人只有一台手电筒,一趟最多两人过桥,一趟过桥须持手电筒,时间以最慢者计,问 17 分钟内可否过桥,如何过桥?#define STATE char#define PATH charconst int TimeLimit = 17;STATE State[16] = { 1 };PATH Path[16];cons原创 2009-08-24 18:56:00 · 11227 阅读 · 23 评论 -
一种PI的计算式
pathuang68:有志于学,虽草庐中应可知天下事!原创 2009-06-22 16:21:00 · 927 阅读 · 1 评论 -
Top 100
http://topic.youkuaiyun.com/u/20090604/21/49599f60-5640-4caf-bf8e-2c2b33f4ef9e.html假设现在有5组数,每组里面有1到10000个数不等,取其中最大的100个数。1、使用大小为100的最小堆,新数与小堆顶比较,大则替换堆顶,整堆。串行线性遍历五组数,复杂度为o(n)2、快排五组数,各取前100或者不足100者取全部原创 2009-06-05 12:22:00 · 1001 阅读 · 0 评论 -
双倍超立方数
双倍超立方数是指一个正整数可以正好被拆分为两种不同的a^3+b^3的方式,其中a,b均为整数且0 试试 (a^3 + b^3) / (a+b),可得 a^2 + b^2 - ab,好了,那么就可以得下式 a^3 + b^3 = (a + b)^3 - 3 ab (a + b)又有 ab 可得 a^3 + b^3 = (a + b)^3 - 3 ab (a + b) >= (原创 2009-06-03 17:04:00 · 1368 阅读 · 2 评论 -
大牛们来看看这首题,哈哈哈哈……
一个人花8块钱买了一只鸡,9块钱卖掉了,然后他觉得不划算,花10块钱又买回来了,11块卖给另外一个人。问他赚了少?原创 2009-05-23 19:01:00 · 1349 阅读 · 3 评论 -
两个数学家的问题,“你不知道我不知道你知道我知道”
已知两个1~30之间的数字,甲知道两数之和,乙知道两数之积。 甲问乙:“你知道是那两个数么?”乙说:不知道。 乙问甲:“你知道是那两个数么?”甲说:也不知道。 于是乙说:那我知道了 随后甲说:那我也知道了。 这两个数是什么?允许两数重复的情况下,答案为 x=1,y=4。甲知道和A=x+y=5,乙知道积B=x*y=4 不允许两数重复的情况下有两种答案 答案1:为x=1,y=6;甲转载 2009-05-18 11:04:00 · 9772 阅读 · 3 评论 -
理解矩阵一、二, 三(转自孟岩blog)
这是很早以前已经看过的,最近无意中又把保存的文章翻出来时,想起很多朋友问过矩阵,虽对矩阵似懂非懂,但却很想弄懂它,希望这几篇文章能帮你一下,故转之:(一)前不久chensh出于不可告人的目的,要充当老师,教别人线性代数。于是我被揪住就线性代数中一些务虚性的问题与他讨论了几次。很明显,chensh觉得,要让自己在讲线性代数的时候不被那位强势的学生认为是神经病,还是比较难的事情。可怜的ch转载 2009-05-18 18:07:00 · 4030 阅读 · 0 评论 -
字符串编辑距离查表法改进
《字符串编辑距离查表法》此篇博文所述,时空复杂度均为 O ( |s1| * |s2| )。此改进法使空间复杂度降为 0 ( min ( |s1|, |s2| ) )。UINT StringDistance ( const _TCHAR str1[], const _TCHAR str2[] ){ UINT length1, length2, * record, i原创 2009-07-25 15:02:00 · 1498 阅读 · 0 评论 -
以乘代除之魔法数原理
以除 3 为例:除 3 即乘 1 / 3。对于有符号数,先乘 2 / 3,将 2 / 3 左移 31 位,留最高位表示符号位,为 55555556h(魔法数)。与原数 imul,则直接取 edx 即为答案。为何要乘 2 / 3 直接得答案呢?先查对于无符号数,乘 2 / 3,将 2 / 3 左移 32 位,为 0AAAAAAABh。与原数 mul 之后,需要右移 32 位回,但由于原创 2009-07-28 12:58:00 · 2059 阅读 · 1 评论 -
限次连续若干同色球概率算法
问题: 对 n 种不同颜色的若干球,一次取用一次,记录球色并放回。计算在 p 次之内至少连续 q 个球同色的概率两法,均为计算机模拟,一种是传统的暴力枚举,第二种,则巧妙利用了随机数……double CalcProbability ( double dn, int p, int cq, int Q ){ double prob; if ( p && cq )原创 2009-07-27 18:10:00 · 1654 阅读 · 0 评论 -
字符串编辑距离查表法
时空复杂度均为 O ( |s1| * |s2| )unsigned int CalcStringDistance ( const _TCHAR str1[], unsigned int l1, const _TCHAR str2[], unsigned int l2, unsigned int* record, unsigned int rl ){原创 2009-07-20 16:53:00 · 1484 阅读 · 8 评论 -
“水仙花数”是否如“质数”一样无界?并对“百度百科”存疑:水仙花数的上界是否卡得太紧了?
关于“水仙花数”的背景知道,请查阅百度百科:http://baike.baidu.com/view/152077.htm这里解决一个问题: 质数有无限多个,质数无上界,欧几里德等诸多数学家对此已给出证明;而“水仙花数”是有限多个,存在上界。通过简单的数学方法,可以给出明确证明。 n 位自然数,最大值是 ma(n) = 99...9 = 10^n - 1,共原创 2009-07-16 16:56:00 · 3428 阅读 · 0 评论 -
简谈悖论
http://topic.youkuaiyun.com/u/20090521/14/1f60fbc9-c193-4bab-9c44-7698ffa62fa5.html?seed=863691158 杨羽龙(chyjp2008)同学在上述贴子里面谈到了悖论的话题。 pathuang68 玄机逸士 同学讲述了如下的故事: 这个话题和这个故事引起了我对悖论的一些想法:原创 2009-05-21 16:26:00 · 1670 阅读 · 0 评论 -
取球的概率算法
http://topic.youkuaiyun.com/u/20090518/21/8b96f19a-af92-4eb8-8021-2977c29f27d2.html#replyachor一个箱子里有r个红球和b个蓝球,球的个数之和是奇数。A和B一起玩一个游戏,首先A从箱子里随机取出一个球(取到每个球的概率是一样的),然后B从箱子里取出一个蓝球,依次进行下去。 当轮到B取时,箱子里没有可取的蓝原创 2009-05-26 01:20:00 · 5294 阅读 · 4 评论 -
不冲突地排床位
换寝室是大家都不愿意碰到的事情,不幸的是,可怜的wwm高中大学都遇到了。 室友们有一个不成文的规定,那就是根据自己的学号选择床号。如果某同学的学号是a,并且有0..k-1一共k张床,那么他就会选择a%k号床作为他睡觉的地点。显然,两个人不能睡在一张床上。那么给出所有同学的学号,请你为他们准备一间卧室,使得里面的床的数量最少。 输入第一行是同学的个数n(1 输出仅一行,是最原创 2009-05-25 13:11:00 · 1607 阅读 · 7 评论 -
大数相加
坎儿妹的又一道题,输入不超过1000位的大数(两个正整数),求和void main(){ char a[1002]; char b[1002]; char* c; int i, p = 0, q = 0, m, n, r; scanf( "%s %s", a, b ); while ( a[p++] ); p--;原创 2009-06-05 21:27:00 · 1038 阅读 · 3 评论 -
生成和测试N位大素数的方法
解析 Miller - Rabin 素数测试思想 http://blog.youkuaiyun.com/hikaliv/archive/2009/06/11/4261948.aspx有志于学,虽草庐中应可知天下事!原创 2009-06-03 20:21:00 · 4318 阅读 · 2 评论 -
递归余七
f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7.Given A, B, and n, you are to calculate the value of f(n). 1 首先,A+B 余 7 相当于A余7与B余7的和再余7再次,AB 余 7 相当于A余7与B余7的积再余7 所以,f(n)原创 2009-06-02 23:59:00 · 1576 阅读 · 3 评论 -
法雷数列
http://topic.youkuaiyun.com/u/20090530/19/912d79b3-f9d0-44d7-8bf5-2dc60be0a197.html 考虑在0和1之间的所有分母不大于N的最简分数,下面是N=5时的情况: 0/1, 1/5, 1/4 ,1/3 ,2/5 ,1/2 ,3/5, 2/3, 3/4 ,4/5, 1/1 .总共有11个分数。写出一个程序对于给定的整原创 2009-05-30 20:38:00 · 2831 阅读 · 1 评论 -
定量最小费用最大流
http://topic.youkuaiyun.com/u/20090529/20/be243b53-4b6c-4d00-aba9-e646d90d0acb.html?seed=316944294 现在一个图,有 A、B...H 共 8 个点,A 可通往 B、C、D;B、C、D 均可通往 E、F、G;E、F、G 均可通往 H。 现从 A 点出发,需要往 D - H 这 7原创 2009-05-30 15:55:00 · 989 阅读 · 0 评论 -
人和猴子分配椰子问题
五男一猴子在一个岛屿上。他们度过了第一晚采收椰子。在夜间,一名男子醒来,并决定拿走他那一份椰子。他分为五个份。椰子剩下来一个,他把它给猴子,然后藏起他的份额,回去睡觉。 不久另一名男子醒来后,也做了同样的事情。经过划分为5份椰子,剩余一个给猴子,拿走自己的,又回到床上。第三,第四和第五名男子一样。第二天早上,他们都醒了,他们剩下的椰子分成五个平摊。这一次没有椰子被遗留下来的原创 2009-05-30 12:07:00 · 5777 阅读 · 1 评论 -
f(f(n)) = -n 是否可以得到
http://topic.youkuaiyun.com/u/20090526/15/d9c9bea3-5dfb-4d72-b7cd-69d88f6430b8.html?seed=2123533860 http://topic.youkuaiyun.com/u/20090525/17/4d0cb4ed-b503-42b6-b7d3-3528b3aaebf7.html 设计一个函数 f,使得 f(f(n))原创 2009-05-26 23:06:00 · 1460 阅读 · 2 评论