自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

人在江湖

记录那些有趣的事儿

  • 博客(30)
  • 收藏
  • 关注

原创 浅谈随机数发生器

我们平时所使用的无论什么编程语言都会提供一个随机数函数,而且它是伪随机数(Pseudo Random Number),它是由算法计算得出的,是可以预测的,也就是说当随机种子相同时,对于同一个随机函数,得出的随机数列是固定不变的,亚裔唯一图灵奖得主姚期智就是研究的就是伪随机数生成论;与之对应的就是真随机数(True Random Number)它是真正的随机数,无法预测且无周期性;还有一种是产生随机数的发生器是密码学伪随机数发生器(Cryptographically Secure Pseudo-Random

2013-12-19 01:51:28 25456 1

原创 成功鲜有偶然:一览IT名人的教育成长经历

由于篇幅有限,只列举受公共认知度较高的创始人(百度百科对应人物词条被顶超过1000次)国内三强:李彦宏(百度创始人):本科就读于北京大学,硕士就读于布法罗纽约州立大学。曾任Infoseek工程师。马云(阿里巴巴创始人):本科就读于杭州师范学院。马化腾(腾讯创始人):本科就读于深圳大学。大三门户网站:王志东(新浪创始人):本科就读于北京大学,点击科技创始人。丁磊(网易创始人):本科就读于电子科

2013-03-07 18:40:06 5960 4

原创 相似图片搜索的三种哈希算法

想必大家都用google或baidu的识图功能,上面就是我搜索冠希哥一幅图片的结果,达到图片比较目的且利用信息指纹比较有三种算法,这些算法都很易懂,下面分别介绍一下:一、平均哈希算法(aHash)此算法是基于比较灰度图每个像素与平均值来实现的,最适用于缩略图,放大图搜索。步骤:1.缩放图片:为了保留结构去掉细节,去除大小、横纵比的差异,把图片统一缩放到8*8,共64个像素的

2013-03-01 04:32:00 31223 10

原创 冯诺依曼解决的一个抛硬币问题

被誉为“现代电子计算机之父”的冯诺依曼同时也是伟大的数学家,他曾经巧妙的解决一个抛硬币问题。总所周知,很多球赛或者各种场合需要进行抛硬币来进行公平的选择,因为硬币的正反面是等概率的,现在有一枚硬币,由于变型导致正反面的概率不一样了,问怎样才能才能进行一次公平的选择(即做出一次猜测的概率为50%)?“博弈论”的奠基人冯诺依曼给的答案是这样的:把这枚硬币抛两次,如果两次的结果一样,则从

2013-02-20 20:33:26 6775

原创 随机在圆上生成n个点,这n个点在同一半圆的概率是多少?

We randomly distribute n points on the circumference of a circle. What is the probability that they will all fall in a common semi-circle?我们先用程序模拟一下这个过程,看看结果会是什么?算法思想:我们先定义一个点的最大值,然后随机生成N个

2013-02-07 18:25:08 21948 8

原创 〖数学算法〗积分算法(一)

当我上小学的时,就学习了球的体积公式V=(4/3)πR³,当时觉得它实在太神奇了,是不是求得这个公式的人把一个铁球熔成铁水,放在一个矩形容器中求的?直到大上学才知道是利用积分算得的,当然微积分这个东西对于包括我在内的广大同学们来说可能是恨大于爱,但不可否认是积分在几乎所有理工学科都有着无可替代的作用,所以博主就写一写求积分的算法,由于算法过多,为了避免篇幅过长,给读者造成疲劳感,我决定分4篇写积分

2013-02-01 11:47:37 21300 15

原创 数学黑洞(三)角谷猜想

角谷猜想也叫考拉兹猜想或者3n+1猜想。在1960年代,日本人角谷静夫研究过这个猜想。在1930年代,德国汉堡大学的学生考拉兹,也曾经研究过这个猜想。但这猜想到目前,仍没有任何进展。这个猜想是指对于每一个正整数,如果它是奇数,则对它乘3再加1,如果它是偶数,则对它除以2,如此循环,最终都能够得到1。如n = 6,根据上述数式,得出 6→3→10→5→16→8→4→2→1

2013-01-28 00:10:04 9533 2

翻译 天才排序算法:睡眠排序

今天看到一个帖子,帖名叫《Genius sorting algorithm: Sleep sort》。看过之后感觉虽然实用价值不高,但挺受启发的,重点是它实在是太欢乐了。楼主:Man, am I a genius. Check out this sorting algorithm I just invented.朋友,我真是个天才,快来看看我刚发明的排序算法。#

2013-01-19 01:32:22 41506 20

原创 〖数学算法〗大数模幂运算快速算法

有朋友问我的博文《素性测试》中的Miller-Rabin算法的大数模幂运算快速算法怎么理解,由于在《素性测试》中没有讲解算法原理,所以在此单独一个篇文章详细讲这个算法。这是一个在密码学中比较重要的算法,在我的《素性测试》一文则是用于实现费马小定理。首先我们先把问题简化一下,看看如何快速求a^b.先看看我们熟知的两个数学公式:a^(2c) = (a^c)^2;a^(2c+1) = a

2013-01-12 00:10:29 13545 14

原创 蒙特霍尔问题:转不过来弯的概率

蒙特霍尔问题是一个源自博弈论的数学游戏问题,大致出自的电视游戏节目“Let's Make a Deal”。问题的名字来自该节目的朱出任蒙特·霍尔(Monty Hall)。 这个游戏的玩法是:参赛者会看见三扇关闭了的门,其中一扇的后面有一辆车。随后参赛者随便选一个门,主持人会开启剩下两扇门的其中一扇,露出其中一只山羊。主持人其后会问参赛者要不要换另一扇仍然关上的门。这是问题来了,参赛者应不应该换

2013-01-10 00:04:51 8778 10

原创 〖数学算法〗素性测试

所谓素性测试是检测一个数是否为素数的测试。而对素数的研究是有很长一段历史,把素数的东西写成一本书的话也许得上千页,而现代密码学又加深了科研工作者对素数的研究,今天就以输出100以内的素数的为例,讲讲素性测试的几种方法。1.试除法这可能是每个学过计算机的朋友都敲过的代码,原理就是从判断2到sqrt(n)或者n/2能不能整除n,若能整除就不是素数。代码清单:public c

2013-01-08 10:25:22 13782 5

原创 谈一谈我对本科计算机专业的认识

新的一年开始了,我大学的所有课程也刚刚结束不久,想一写篇文章谈一谈我对计算机专业的认识。博主学的专业是“计算机科学与技术”,今年大四,三年半的校园生活使我对计算机专业的认知一次又一次的改变;由于没有一个好的“引路人”,自己总是摸索着前进,走了不少的弯路。刚上大学的时候对计算机没有什么概念,当时除了会打字以外也不会什么,印象中的计算机专业是编程,是写软件,或者是做些什么PS,网页三剑客,甚至修电脑之

2013-01-01 00:00:45 42398 78

原创 秒杀排列组合(下)————组合篇

首先为什么要写排列组合?因为排列组合在数学中占有重要的地位,其与概率论也有密切关系;并且排列组合问题在求职的笔试,面试出现的概率特别高,而我在网上又没有搜到比较全面题型的文章;同时,我觉得编写排列组合程序对学习递归也是很有帮助的;当然,最重要的原因是排列组合本身就很有趣!所以就总结下排列组合的各种问法,分两篇写:上篇写排列,下篇写组合。组合篇排列篇地址:http://blo

2012-12-26 11:48:14 19797 5

原创 秒杀排列组合(上)————排列篇

首先为什么要写排列组合?因为排列组合在数学中占有重要的地位,其与概率论也有密切关系;并且排列组合问题在求职的笔试,面试出现的概率特别高,而我在网上又没有搜到比较全面题型的文章;同时,我觉得编写排列组合程序对学习递归也是很有帮助的;当然,最重要的原因是排列组合本身就很有趣!所以就总结下排列组合的各种问法,分两篇写:上篇写排列,下篇写组合。排列篇组合篇地址:http://blog.cs

2012-12-23 16:36:42 33192 30

原创 ┎结构之美┒之并查集

顾名思义,并查集的功能是并和查,但并和查的对象是什么呢?针对的是集合。所以我想了一个例子给大家讲解,咱不说概念性晦涩的东西。通俗易懂,直接来看图:这是我做的一张两个IT公司的公司人员结构,当然两个公司就不用介绍了,现在问题来了:比如我想知道Steve Ballmer和worker4是不是一个公司的该怎么办?我们可以定义一个结构体,里面有个属性叫company来记录一个人的公司,这样就浪

2012-12-19 00:39:57 3871

原创 记录打印一个椭圆的有趣过程

记得大一刚学C语言的时候,书后有道打印三角形的题,记得当时做了一个多小时才做出来,相信大家初学编程也做过类似的问题,今天突发奇想想打印个特殊曲线,于是把目标锁定为打印一个椭圆,大家都知道编程语言打印输出一个图形,如果它是单调递增或者单调递减是非常容易的,如果非单调的函数就得费一些周折。椭圆不是单调函数应该怎么快速打印呢首先因为圆是特殊的椭圆,所以我们先想想如何打印圆形,我们可以先想把圆分成1/4,

2012-12-15 03:02:07 4956 3

原创 substring()字节字符截取两种方式及内存泄漏问题

substring()或者substr()是大部分主流语言所支持的,同时对字符串的操作是编程中最频繁的操作,当然对截取字符串也是最常用操作之一。所以今天就讨论一下subtring()。以JAVA举例,在JAVA中我们看看系统提供的substring()有什么问题?我们首先看看JDK中substring()的源码: public String substring(int begi

2012-12-12 07:46:47 6957 7

原创 优秀程序员不得不知道的20个位运算技巧

一提起位运算,人们往往想到它的高效性,无论是嵌入式编程还是优化系统的核心代码,适当的运用位运算总是一种迷人的手段,或者当您求职的时候,在代码中写入适当的位运算也会让您的程序增加一丝亮点,最初当我读《编程之美》求“1的数目”时,我才开始觉得位运算是如此之美,后来读到 《Hacker's Delight》,感慨到Henry S.Warren把位运算运用的如此神出鬼没,很多程序都十分精妙,我觉得在一

2012-12-08 09:45:47 95909 123

原创 数学黑洞(二)任何数都逃不出的西西弗斯黑洞

如果我写的博文《数学黑洞(一)令人拍案叫绝的卡布列克常数》惊艳到您了,那西西弗斯黑洞也同样不会让您感到失望。西西弗斯黑洞又叫123黑洞,很明显,这个要出现的不可思议的现象要与再简单不过的数字123扯上了,与6174黑洞还要限制数字位数相比,123黑洞可适用于适合正整数!那么下面我们就看一下关于这个黑洞的描述:设定一个任意数字串,数出这个数中的偶数个数,奇数个数,及这个数中所包含的所有位

2012-12-04 12:47:56 9106

原创 动态规划经典五题

DP一年多没碰过了,今天突然想找找感觉,找了经典的几道DP复习着敲了敲。虽然最大子矩阵,滑雪,石子合并等问题也足够经典,我还是从中找了5道最经典的DP写了这篇博文,如果您是大一,大二想踏入程序竞赛的同学可以当习题做做,如果您像我一样不是ACMer,平时项目中也很少用DP,同样可以回顾一下DP的奥妙。1.最大连续子序列之和给定K个整数的序列{ N1, N2, ..., NK },其任

2012-12-02 08:49:10 45775 23

原创 〖数学算法〗逆矩阵算法

矩阵大家一定都很熟悉,它是线性代数中的一个术语,它在生产实践,科研,等各学科都有不可替代的作用,求逆矩阵当然是矩阵的一种常用操作,今天就写了个求逆矩阵的程序巩固下基本功。首先让我们回忆一下你矩阵的定义:逆矩阵:设A是数域上的一个n阶方阵,若在相同数域上存在另一个n阶矩阵B,使得: AB=BA=E。 则我们称B是A的逆矩阵,而A则被称为可逆矩阵。接下来我带大家回忆一下在“线性代数”中

2012-11-30 13:15:01 40080 4

原创 “汽水三换一”问题的两种问法及巧妙解答

此题今年我在包括360在内的三家公司的笔试面试中遇到过,总结了此题的两种问法及巧妙解决方案,方便大家应对招聘或者当个智力题开动下思维也好。问法一:三个空瓶换一瓶汽水,某班买了30瓶汽水,要保证每人喝一瓶汽水,最多可以供给多少名同学?问法二:三个空瓶换一瓶汽水,某班有30名同学,要保证每人喝一瓶汽水,最少需要买多少瓶水?此题在我小学三年级的时候就在某“智力”书上看过,让我印象

2012-11-28 18:52:07 5185 11

原创 ┎结构之美┒之Trie树

博主今天新开一系列写“结构”,简单的单链表,普通队列,普通栈,普通二叉树就不写了,今天从Trie树写起。Trie树(又叫字典树,前缀树,单词查找树,键树)是一种树形数据结构,直接来看图:我们来看看Trie树的特点:根节点为空值,剩下每一个节点保存一个字母。知道这些就够了!我们再来看看这棵树能干什么?如果从根节点遍历到某一个节点把路径节点的值连在一起就构成了一个字符串,利用这个特

2012-11-27 12:17:31 3598 2

原创 对比C与JAVA运算符效率的六点无法解释的现象

众所周知编程语言运算符的效率差异不小,今天博主对赋值运算,加法,减法,乘法,乘法,取模,位运算分别用C和JAVA进行了效率测试,产生了一些令我无法解释的测试结果,以此文章把问题记录下来,希望日后可以解决,也恭请各位大牛来帮忙,下面把我的测试出的问题罗列一下。测试环境:CPU :i3-370M ;内存:4G; JAVA IDE:elipse ;C IDE:VC6.0,C-Free5.0。

2012-11-26 15:03:30 4356 16

原创 钱应该如何分配?

题目是这样的:一天,甲乙丙三个屌丝依旧准备去搬砖,突然甲逆袭成功约走了白富美,留给乙丙90块钱求帮忙把活干了,于是乙上午搬了4小时,丙下午搬了5小时,问这90块乙丙如何分配?错解:这题给人的直觉是给乙40块,丙50块,但忽略了乙丙本身也是要干活的。正解:请上帝允许我用小学解应用题的格式书写下解:甲乙丙三人原本每人搬砖时间为:(4+5)÷  3 = 3(小时)

2012-11-24 18:07:48 2467 2

原创 〖数学算法〗开平方的七种算法

sqrt()函数,是绝大部分语言支持的常用函数,它实现的是开方运算;开方运算最早是在我国魏晋时数学家刘徽所著的《九章算术》被提及。今天写了几个函数加上国外大神的几个神级程序带大家领略sqrt的神奇之处。1.古人算法(暴力法)  原理:从0开始0.00001,000002...一个一个试,直到找到x的平方根,代码如下:public class APIsqrt { stat

2012-11-23 21:01:58 41298 5

原创 数学黑洞(一)令人拍案叫绝的卡布列克常数

卡布列克是一位数学家,他在研究数字时发现:任意一个不是有完全相同数字的组成的四位数,如果对它们的每位数字重新排序,组成一个最大的数各一个最小的数,然后用最大数减去最小数,差不够四位数时补零,类推下去,最后将变成一个固定的数:6174,这就是卡布列克常数。例如:4321-1234=3087 8730-378=8352 8532-2358=6174 7641-1467=6174。验证卡布列克运算,

2012-11-22 10:22:41 15443 3

原创 圆周率为什么会等于4?

上篇博文与大家分享了如何求的圆周率,无论是近似值还是准确值结果都在3.14.......但大家看下面的一张推导圆周率的图片它的意思就是先画个圆的外接正方形,然后按图示把正方形转化成等周长的N边形,也就是方形无限折,直到最后和圆的周长相等了!结果πd = 1*4求的 π=4 !呃,我的人生观彻底崩溃了,大家是不是觉得也有些懵圈,咋回事呢? thinking。。。如果 π=

2012-11-19 18:25:01 14980

原创 〖数学算法〗求圆周率的几种算法

圆周率大家都不陌生,最早由欧几里德《几何原本》中提到圆周率是常数,第一个用寻求圆周率数值的人是阿基米德,中国数学家刘徽,和后来大名鼎鼎的祖冲之分别对圆周率进行了计算,从古到今对圆周率的计算方法有几十种。下面就介绍几种求圆周率的方法:1.随机投点法(蒙特卡洛算法) 这是粗略的求圆周率一种常用算法在(0,0)和(1,1)范围内随机投test_sum个点,如果落到圆内

2012-11-19 15:05:15 45480 2

原创 今天我的CSDN博客开通啦!请大家多多关照。

大学一转眼过了三年多,虚度了很多的时光,今天下定决心开通博客,为了巩固计算机基础,和督促我不能再浪费时间,没事可以写写博客,记录一些生活中遇到的有趣的与计算机相关的东西,多做一些自己喜欢的事情,体味生活的乐趣,生活本应如此。

2012-11-19 14:07:42 1522

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除