05 2016 档案

九章算术卷第二 粟米
摘要:粟米之法:粟率五十粝米三十 粺米二十七凿米二十四御米二十一小●十三半 大●五十四粝饭七十五 粺饭五十四凿饭四十八御饭四十二菽、答、麻、麦各四十五 稻六十豉六十三飧九十熟菽一百三半櫱一百七十五今有术曰:以所有数乘所求率为实,以所有率为法,实如法而一。〔一〕今有粟一斗,欲... 阅读全文

posted @ 2016-05-31 10:29 海岛Blog 阅读(602) 评论(0) 推荐(0)

九章算术卷第二 粟米
摘要:粟米之法:粟率五十粝米三十 粺米二十七凿米二十四御米二十一小●十三半 大●五十四粝饭七十五 粺饭五十四凿饭四十八御饭四十二菽、答、麻、麦各四十五 稻六十豉六十三飧九十熟菽一百三半櫱一百七十五今有术曰:以所有数乘所求率为实,以所有率为法,实如法而一。〔一〕今有粟一斗,欲... 阅读全文

posted @ 2016-05-31 10:29 海岛Blog 阅读(409) 评论(0) 推荐(0)

九章算术卷第一 方田
摘要:〔一〕今有田广十五步,从十六步。问为田几何?答曰:一亩。〔二〕又有田广十二步,从十四步。问为田几何?答曰:一百六十八步。方田术曰:广从步数相乘得积步。以亩法二百四十步除之,即亩数。百亩为一顷。〔三〕今有田广一里,从一里。问为田几何?答曰:三顷七十五亩。〔四〕又有田广二... 阅读全文

posted @ 2016-05-31 10:07 海岛Blog 阅读(448) 评论(0) 推荐(0)

九章算术卷第一 方田
摘要:〔一〕今有田广十五步,从十六步。问为田几何?答曰:一亩。〔二〕又有田广十二步,从十四步。问为田几何?答曰:一百六十八步。方田术曰:广从步数相乘得积步。以亩法二百四十步除之,即亩数。百亩为一顷。〔三〕今有田广一里,从一里。问为田几何?答曰:三顷七十五亩。〔四〕又有田广二... 阅读全文

posted @ 2016-05-31 10:07 海岛Blog 阅读(821) 评论(0) 推荐(0)

九章算术 原序
摘要:昔在包牺氏始画八卦,以通神明之德,以类万物之情,作九九之术以合六爻之变。暨于黄帝神而化之,引而伸之,于是建曆纪,协律吕,用稽道原,然后两仪四象精微之气可得而效焉。记称隶首作数,其详未之闻也。按周公制礼而有九数,九数之流,则九章是矣。 往者暴秦焚书,经术散坏。自时... 阅读全文

posted @ 2016-05-31 09:52 海岛Blog 阅读(227) 评论(0) 推荐(0)

软件开发活动
摘要:软件开发活动大体包括以下几个过程: 1. 问题的定义及规划 此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。 2. 需求分析 在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。需求分析阶段是一个很重要的阶段,这一阶段做得好,将为整... 阅读全文

posted @ 2016-05-30 18:51 海岛Blog 阅读(119) 评论(0) 推荐(0)

软件开发活动
摘要:软件开发活动大体包括以下几个过程: 1. 问题的定义及规划 此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。 2. 需求分析 在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。需求分析阶段是一个很重要的阶段,这一阶段做得好,将为整... 阅读全文

posted @ 2016-05-30 18:51 海岛Blog 阅读(145) 评论(0) 推荐(0)

趣味程序之数学之美系列
摘要:数学之美系列程序一览如下,点击进入博客文章:I00001 杨辉三角I00003 贝尔三角形I00004 贝尔三角形(解法二)I00020 计算卡特兰数函数I00025 寻找循环数I00026 计算数根I00032 约瑟夫环(Joseph problem)I00009 ... 阅读全文

posted @ 2016-05-30 08:25 海岛Blog 阅读(208) 评论(0) 推荐(0)

I00019 生成全8数
摘要:这是数学之美系列的一个程序。程序如下:/* 生成全8数 */#include int main(void){ long multinum=0; int i; for(i=8; i>=0; i--) { printf("%8ld*9+%d... 阅读全文

posted @ 2016-05-30 08:18 海岛Blog 阅读(154) 评论(0) 推荐(0)

I00018 生成全1数
摘要:这是数学之美系列的一个程序。程序如下:/* 生成全1数 */#include int main(void){ long multinum=0; int i; for(i=1; i<=10; i++) { printf("%10ld*9+... 阅读全文

posted @ 2016-05-30 08:09 海岛Blog 阅读(141) 评论(0) 推荐(0)

I00017 生成9开头的按位递减数
摘要:这是数学之美系列的一个程序。程序如下:/* 生成9开头的按位递减数 */#include int main(void){ long multinum=1; int i; for(i=1; i<=9; i++) { printf("%9l... 阅读全文

posted @ 2016-05-30 07:50 海岛Blog 阅读(125) 评论(0) 推荐(0)

I00017 生成9开头的按位递减数
摘要:这是数学之美系列的一个程序。程序如下:/* 生成9开头的按位递减数 */#include int main(void){ long multinum=1; int i; for(i=1; i<=9; i++) { printf("%9l... 阅读全文

posted @ 2016-05-30 07:50 海岛Blog 阅读(128) 评论(0) 推荐(0)

HDU1042 n!
摘要:问题链接:HDU1042 n!。问题描述:参见上文。问题分析:看似简单的问题,背后实际上有许多道理。阶乘值随着n的增大,增大的速度相当的快,是一个大整数。似乎这个题可以使用大整数类进行计算,然而类计算相对复杂,时间上溢出的可能性比较大。一般的整数计算,在计算机中是一种... 阅读全文

posted @ 2016-05-29 09:51 海岛Blog 阅读(126) 评论(0) 推荐(0)

POJ3982 序列
摘要:问题链接:POJ3982 序列。问题简述:参见上述链接。问题分析:这只是一个大整数数列的问题,有一个大整数类就解决了。数列类似于斐波拉契数列,只是稍微复杂一些。程序说明:这里使用自己的功能简洁的大整数类。这个类是参考其他人的程序改造的。AC的C++语言程序如下:/* ... 阅读全文

posted @ 2016-05-29 07:05 海岛Blog 阅读(123) 评论(0) 推荐(0)

HDU1297 Children’s Queue
摘要:问题链接:HDU1297 Children’s Queue。问题描述:参见上文。问题分析:这个问题看似一个字符串排列问题,然而只是计算排列数量,可以用类似于计算斐波拉契数列的方法来解。对于各种排列而言,用f(n)表示其长度为n时的可能数,有以下的情形:长度为1时,只有... 阅读全文

posted @ 2016-05-29 05:50 海岛Blog 阅读(145) 评论(0) 推荐(0)

HDU5686 Problem B
摘要:问题链接:HDU5686 Problem B。问题简述:参见上述链接。问题分析:这个问题几乎与“HDU1865 1sting”是同一个问题。这个问题看似一个字符串排列问题,然而只是计算排列数量,可以用斐波拉契数列来解。对于由所有1构成的字符串而言,用f(n)表示其长度... 阅读全文

posted @ 2016-05-28 09:30 海岛Blog 阅读(143) 评论(0) 推荐(0)

HDU1865 1sting
摘要:问题链接:HDU1865 1sting。问题描述:参见上文。问题分析:这个问题与“HDU5686 Problem B”几乎是同一个问题。这个问题看似一个字符串排列问题,然而只是计算排列数量,可以用斐波拉契数列来解。对于由所有1构成的字符串而言,用f(n)表示其长度为n... 阅读全文

posted @ 2016-05-28 08:57 海岛Blog 阅读(122) 评论(0) 推荐(0)

HDU1865 1sting
摘要:问题链接:HDU1865 1sting。问题描述:参见上文。问题分析:这个问题与“HDU5686 Problem B”几乎是同一个问题。这个问题看似一个字符串排列问题,然而只是计算排列数量,可以用斐波拉契数列来解。对于由所有1构成的字符串而言,用f(n)表示其长度为n... 阅读全文

posted @ 2016-05-28 08:57 海岛Blog 阅读(116) 评论(0) 推荐(0)

HDU1230 火星A+B【进制】
摘要:问题链接:HDU1230 火星A+B。问题简述:参见上述链接。问题分析:这是一个有关进制的问题,需要了解进制的原理,相关知识背景是必要的。人们通常使用10进制,每一位都是逢10进1。另外一个重要的概念是位权的概念,即每一个位置不同的数字其权值不同。10进制中,个位的权... 阅读全文

posted @ 2016-05-27 22:33 海岛Blog 阅读(246) 评论(0) 推荐(0)

HDU1161 Eddy's mistakes
摘要:问题链接:HDU1161 Eddy's mistakes。问题描述:参见上文。问题分析:这个题太简单了,只是一个大写字母转换为小写字母的问题。然而,需要做到的是简洁易懂,使用的空间最少,运行时间最短。其实,这个是不易做到的。再一个问题就是C语言库函数的使用。人们常常忘... 阅读全文

posted @ 2016-05-27 15:58 海岛Blog 阅读(90) 评论(0) 推荐(0)

HDU1161 Eddy's mistakes
摘要:问题链接:HDU1161 Eddy's mistakes。问题描述:参见上文。问题分析:这个题太简单了,只是一个大写字母转换为小写字母的问题。然而,需要做到的是简洁易懂,使用的空间最少,运行时间最短。其实,这个是不易做到的。再一个问题就是C语言库函数的使用。人们常常忘... 阅读全文

posted @ 2016-05-27 15:58 海岛Blog 阅读(84) 评论(0) 推荐(0)

HDU1005 Number Sequence【递推序列+模除】
摘要:问题链接:HDU1005 Number Sequence。问题描述:参见上文。问题分析:这是一个有关数列与模除的问题。斐波拉契数列是人们熟悉的。这个问题的每一项都做了一个算术计算,然后用7进行模除。根据数论的知识可知,模7的余数值是0-6。若对于正整数k和m,若f(k... 阅读全文

posted @ 2016-05-27 15:18 海岛Blog 阅读(105) 评论(0) 推荐(0)

HDU1005 Number Sequence【递推序列+模除】
摘要:问题链接:HDU1005 Number Sequence。问题描述:参见上文。问题分析:这是一个有关数列与模除的问题。斐波拉契数列是人们熟悉的。这个问题的每一项都做了一个算术计算,然后用7进行模除。根据数论的知识可知,模7的余数值是0-6。若对于正整数k和m,若f(k... 阅读全文

posted @ 2016-05-27 15:18 海岛Blog 阅读(185) 评论(0) 推荐(0)

HDU1021 ZOJ2060 Fibonacci Again【斐波拉契数列+模除】
摘要:Fibonacci AgainTime Limit: 2 Seconds Memory Limit: 65536 KBThere are another kind of Fibonacci numbers: F(0) = 7, F(1) = 11, F(n)... 阅读全文

posted @ 2016-05-27 10:13 海岛Blog 阅读(178) 评论(0) 推荐(0)

HDU1021 ZOJ2060 Fibonacci Again【斐波拉契数列+模除】
摘要:Fibonacci AgainTime Limit: 2 Seconds Memory Limit: 65536 KBThere are another kind of Fibonacci numbers: F(0) = 7, F(1) = 11, F(n)... 阅读全文

posted @ 2016-05-27 10:13 海岛Blog 阅读(133) 评论(0) 推荐(0)

I00016 打印等腰三角形字符图案(底边在左或右)
摘要:曾经的计算机,没有显示屏,人们操作计算机时,用打印机记录执行的操作命令。后来有了显示屏,不过最初的显示屏是字符频幕,输出只能是字符。即使是今日,计算机已经进入多窗口图形界面时代,有时程序的输出也依然是字符的。打印底边在左或右的等边三角形字符图案的程序,关键是有关循环控... 阅读全文

posted @ 2016-05-27 06:02 海岛Blog 阅读(293) 评论(0) 推荐(0)

软件特点
摘要: 软件特点可以归纳如下: 1. 软件是一种逻辑实体。软件是抽象的、无形的,没有物理实体,但可以记录在介质上。软件必须通过测试、分析、思考、判断去了解它的功能、性能及其他特性。软件正确好坏与否,需要等到在机器上运行之后才能知道。这给软件的设计、生产和管理带来诸多... 阅读全文

posted @ 2016-05-26 20:15 海岛Blog 阅读(816) 评论(0) 推荐(0)

冯·若依曼体系结构
摘要:1945年6月,冯•诺依曼提出了在数字计算机内部的存储器中存放程序的概念(Stored Program Concept),这是所有现代电子计算机的范式,称为冯• 诺依曼体系结构。按照该结构建造的计算机称为存储程序计算机(Stored Program Computer... 阅读全文

posted @ 2016-05-26 06:35 海岛Blog 阅读(1017) 评论(0) 推荐(0)

冯·若依曼体系结构
摘要:1945年6月,冯•诺依曼提出了在数字计算机内部的存储器中存放程序的概念(Stored Program Concept),这是所有现代电子计算机的范式,称为冯• 诺依曼体系结构。按照该结构建造的计算机称为存储程序计算机(Stored Program Computer... 阅读全文

posted @ 2016-05-26 06:35 海岛Blog 阅读(246) 评论(0) 推荐(0)

PHP语言的RSA算法加解密程序
摘要:程序来源是GitHub的PHP RSA 公钥私钥不对称加密。Rsa.php程序如下: */class Rsa { private $_config; function __construct() { $rsa_config = array()... 阅读全文

posted @ 2016-05-26 06:26 海岛Blog 阅读(200) 评论(0) 推荐(0)

PHP语言的RSA算法加解密程序
摘要:程序来源是GitHub的PHP RSA 公钥私钥不对称加密。Rsa.php程序如下: */class Rsa { private $_config; function __construct() { $rsa_config = array()... 阅读全文

posted @ 2016-05-26 06:26 海岛Blog 阅读(175) 评论(0) 推荐(0)

计算机外部设备功能
摘要:计算机是以中央处理器(CPU)为核心的,延伸计算机的功能使其方便使用则主要依赖于计算机的外部设备。 外部设备能为主机提供需要处理的信息,能将主机处理的结果转换成人们易于识别和理解的信息形式,还能为主机提供存储空间、提供与其他计算机系统通信的链路、架起人们向计算机系统... 阅读全文

posted @ 2016-05-25 07:46 海岛Blog 阅读(299) 评论(0) 推荐(0)

计算机外部设备功能
摘要:计算机是以中央处理器(CPU)为核心的,延伸计算机的功能使其方便使用则主要依赖于计算机的外部设备。 外部设备能为主机提供需要处理的信息,能将主机处理的结果转换成人们易于识别和理解的信息形式,还能为主机提供存储空间、提供与其他计算机系统通信的链路、架起人们向计算机系统... 阅读全文

posted @ 2016-05-25 07:46 海岛Blog 阅读(450) 评论(0) 推荐(0)

POJ1700 Crossing River
摘要:问题链接:POJ1700 Crossing River。问题描述:参见上文。问题分析:这个问题适合于用贪心法来解决,所以需要对输入的数据事先进行排序。同时还需要考虑特例情况,数据个数小于3的时候,需要特殊处理;数据个数大于3的时候,需要统一处理。假设人数为n,总的过河... 阅读全文

posted @ 2016-05-24 11:02 海岛Blog 阅读(103) 评论(0) 推荐(0)

POJ1700 Crossing River
摘要:问题链接:POJ1700 Crossing River。问题描述:参见上文。问题分析:这个问题适合于用贪心法来解决,所以需要对输入的数据事先进行排序。同时还需要考虑特例情况,数据个数小于3的时候,需要特殊处理;数据个数大于3的时候,需要统一处理。假设人数为n,总的过河... 阅读全文

posted @ 2016-05-24 11:02 海岛Blog 阅读(118) 评论(0) 推荐(0)

Python程序-打印九九乘法表
摘要:源程序如下:# 打印九九乘法表for i in range(1, 10): for j in range(1, i+1): print('{}x{}={}\t'.format(j, i, i*j), end='') print()程序执行结果... 阅读全文

posted @ 2016-05-23 22:17 海岛Blog 阅读(290) 评论(0) 推荐(0)

Python程序-打印斐波拉契数列
摘要:这个程序的输出从第0项开始,输出到指定的项为止。程序如下:# 打印斐波拉契数列 iterations = int(input("Number of iterations: "))cont = 1result = ""if iterations > 0: fibo... 阅读全文

posted @ 2016-05-23 19:53 海岛Blog 阅读(270) 评论(0) 推荐(0)

I00015 打印等腰三角形字符图案(底边在上)
摘要:曾经的计算机,没有显示屏,人们操作计算机时,用打印机记录执行的操作命令。后来有了显示屏,不过最初的显示屏是字符频幕,输出只能是字符。即使是今日,计算机已经进入多窗口图形界面时代,有时程序的输出也依然是字符的。打印等腰三角形程序,关键是有关循环控制。程序中需要控制好总行... 阅读全文

posted @ 2016-05-23 19:19 海岛Blog 阅读(215) 评论(0) 推荐(0)

I00015 打印等腰三角形字符图案(底边在上)
摘要:曾经的计算机,没有显示屏,人们操作计算机时,用打印机记录执行的操作命令。后来有了显示屏,不过最初的显示屏是字符频幕,输出只能是字符。即使是今日,计算机已经进入多窗口图形界面时代,有时程序的输出也依然是字符的。打印等腰三角形程序,关键是有关循环控制。程序中需要控制好总行... 阅读全文

posted @ 2016-05-23 19:19 海岛Blog 阅读(173) 评论(0) 推荐(0)

数制与编码
摘要:人们对10进制不会陌生,随便写一个数123,从右到左分别是个位、十位和百位,123的个位是3、十位是2、百位是1。但是如果问:“百位到底是什么位?”又有几个人能够答得上来呢? 人类使用10进制也许和人的指头数量有关,人的手指头和脚趾头都是10个。 人类并不... 阅读全文

posted @ 2016-05-23 18:29 海岛Blog 阅读(330) 评论(0) 推荐(0)

C语言实现的RSA算法程序
摘要:源程序来自Gethub的Simple implementation of the RSA algorithm。程序中有关类型转换代码略做修改,并且已经能够编译运行。程序如下:#include #include #include #include #define ACC... 阅读全文

posted @ 2016-05-23 10:00 海岛Blog 阅读(2379) 评论(1) 推荐(0)

B00008 C++实现的大整数计算(一)
摘要:程序来自:BigInteger。源程序如下:/* * @author panks * Big Integer library in C++, single file implementation. */#include #include #include #inclu... 阅读全文

posted @ 2016-05-22 22:39 海岛Blog 阅读(157) 评论(0) 推荐(0)

影响历史进程的三只苹果
摘要: 三只苹果影响着人类的历史,同样也影响着计算机科学技术发展的历史。 有人说,历史上有三只苹果改变世界,一是亚当和夏娃的苹果,二是牛顿的苹果,三是乔布斯的苹果。 也有人说有三只苹果改变了计算机科学与技术发展的进程,一是亚当和夏娃的苹果,二是图灵的苹果,三是乔布... 阅读全文

posted @ 2016-05-22 08:27 海岛Blog 阅读(602) 评论(0) 推荐(0)

C语言实现的RSA算法程序(使用GMP)
摘要:这个程序使用了GMP包,所以程序比较简洁,并且几乎不论多大的整数都可以计算。代码来自rosettacode.org的RSA code。C语言程序如下:#include #include #include #include int main(void){ mpz... 阅读全文

posted @ 2016-05-20 00:14 海岛Blog 阅读(677) 评论(0) 推荐(0)

C++实现的大整数分解Pollard's rho算法程序
摘要:代码来自GeeksforGeeks的Pollard’s Rho Algorithm for Prime Factorization。C++语言程序代码如下:/* C++ program to find a prime factor of composite using... 阅读全文

posted @ 2016-05-19 23:56 海岛Blog 阅读(193) 评论(0) 推荐(0)

Java实现的大整数分解Pollard's rho算法程序
摘要:这个程序是从英文版维基百科的链接中看到的。代码来自PollardRho.java。程序如下:/****************************************************************************** * Compi... 阅读全文

posted @ 2016-05-19 23:45 海岛Blog 阅读(199) 评论(0) 推荐(0)

素性测试算法
摘要:判定一个整数是否为素数即为素性测试(Primality test)。素性测试的算法分为确定型启发式算法和随机算法。随机算法:费尔马素性测试法(Fermat primality test)Miller-Rabin素性测试法(Miller–Rabin primality ... 阅读全文

posted @ 2016-05-19 22:53 海岛Blog 阅读(693) 评论(0) 推荐(0)

素性测试AKS算法程序
摘要:AKS算法,是三位印度人发明的,AKS是他们的姓氏首字母。ASK算法是确定算法,其时间复杂度相当于多项式的,属于可计算的算法。另外需要了解的是Miller-Rabin素性测试算法。该算法不是确定算法。然而测试的计算速度快,比较有效,被广泛使用。代码来自rosettac... 阅读全文

posted @ 2016-05-19 13:30 海岛Blog 阅读(804) 评论(0) 推荐(0)

C++实现的Miller-Rabin素性测试程序
摘要:Miller-Rabin素性测试算法是概率算法,不是确定算法。然而测试的计算速度快,比较有效,被广泛使用。另外一个值得介绍的算法是AKS算法,是三位印度人发明的,AKS是他们的姓氏首字母。ASK算法是确定算法,其时间复杂度相当于多项式的,属于可计算的算法。代码来自Sa... 阅读全文

posted @ 2016-05-18 16:52 海岛Blog 阅读(480) 评论(0) 推荐(0)

为什么天朝互联网的三巨头是BAT
摘要:B即百度,A即阿里巴巴,T即腾讯,BAT是天朝互联网三巨头的简称。需要问的问题是,为什么天朝互联网的三巨头是BAT?这需要仔细观察一下这三家公司都在做什么,给人们带来什么。以下先回顾一下众所周知的事情,然后再做简单分析。 百度的核心产品是搜索引擎,并以此为核心提供多... 阅读全文

posted @ 2016-05-18 11:10 海岛Blog 阅读(335) 评论(0) 推荐(0)

KMP模式匹配算法程序(Python,C++,C)
摘要:代码来自维基教科书:Knuth-Morris-Pratt pattern matcher。Python程序如下:# Knuth-Morris-Pratt string matching# David Eppstein, UC Irvine, 1 Mar 2002#fr... 阅读全文

posted @ 2016-05-18 09:53 海岛Blog 阅读(275) 评论(0) 推荐(0)

I00014 汉若塔问题的C++程序
摘要:代码来自维基教科书:C++ Programming As A Set Of Problems。程序如下: #include void hanoi(int depth, int from, int to, int alternate) { if(depth =... 阅读全文

posted @ 2016-05-18 06:50 海岛Blog 阅读(153) 评论(0) 推荐(0)

扩展欧几里得算法与模乘逆元的程序
摘要:代码来自维基百科的Extended Euclidean algorithm。扩展欧几里得算法程序:function extended_gcd(a, b) s := 0; old_s := 1 t := 1; old_t := 0 r :=... 阅读全文

posted @ 2016-05-16 19:04 海岛Blog 阅读(292) 评论(0) 推荐(0)

为什么需要学习C语言
摘要:学习C语言的主要理由有以下几点:·C语言可以作为学习计算机程序设计语言的入门语言;·C语言是编写操作系统的首选语言,与计算机硬件打交道时灵巧且高效;·C语言具有现代高级程序设计语言的基本语法特征;·常用的面向对象程序设计语言例如C++和Java,其基本语法源于C语言;... 阅读全文

posted @ 2016-05-16 18:51 海岛Blog 阅读(211) 评论(0) 推荐(0)

B00007 快速模幂运算的两个C语言程序
摘要:代码来自维基百科的Modular arithmetic。这两段代码都不是大整数计算的程序,是2进制64整数的计算程序,数据不能大于2进制63位。两段代码分别如下:uint64_t mul_mod(uint64_t a, uint64_t b, uint64_t m){... 阅读全文

posted @ 2016-05-16 18:42 海岛Blog 阅读(161) 评论(0) 推荐(0)

RSA的JavaScript程序
摘要:代码来自维基百科的RSA (cryptosystem)。RSA的JavaScript程序如下:'use strict';/** * RSA hash function reference implementation. * * @namespace */var RSA... 阅读全文

posted @ 2016-05-16 18:30 海岛Blog 阅读(251) 评论(0) 推荐(0)

自由软件与软件版权
摘要:理查德·马修·斯托曼(R.M.Stallman,生于1953年),自由软件运动的精神领袖、GNU计划以及自由软件基金会(Free Software Foundation)的创立者、著名黑客。自由软件:自由软件是指计算机用户拥有选择和任何人合作的自由、拥有掌控他们所用的... 阅读全文

posted @ 2016-05-16 07:24 海岛Blog 阅读(298) 评论(0) 推荐(0)

Modular Multiplicative Inverse(模乘逆元)
摘要:计算模乘逆元原理上有四种方法:1.暴力算法2.扩展欧几里得算法3.费尔马小定理4.欧拉定理模乘逆元定义:满足 ab≡1(mod m),称b为a模乘逆元。以下是有关概念以及四种方法及程序。文章出处:Modular Multiplicative InverseThe mo... 阅读全文

posted @ 2016-05-14 20:34 海岛Blog 阅读(657) 评论(0) 推荐(0)

HDU1222 Wolf and Rabbit
摘要:问题链接:HDU1222 Wolf and Rabbit。问题描述:参见上文。问题分析:对于输入的m,可以看作是狼的步伐。对于输入的n,用0到n-1围成一圈。如果m和n有最大公约数(非1),则有一些标号的洞坑狼永远到达不了,兔子有洞坑可以躲,是安全的;如果m和n没有最... 阅读全文

posted @ 2016-05-14 16:21 海岛Blog 阅读(190) 评论(0) 推荐(0)

B00006 函数itoa()
摘要:这是一个通用的基础程序,将整型数转换为数字字符串。其中需要用到字符串逆序转换函数reverse()。该程序来自K&C的《C程序设计语言》一书。程序如下:/* itoa 带符号的整数转换字符串 */#include #include void reverse(char ... 阅读全文

posted @ 2016-05-14 01:02 海岛Blog 阅读(293) 评论(0) 推荐(0)

B00005 函数atoi()(去空格,带符号)
摘要:这是一个通用的基础程序,将数字字符串转换为整型数。这个程序会去掉字符串开始的空格,并且能够转换带符号的整数。该程序来自K&C的《C程序设计语言》一书。程序如下:/* 带符号的atoi,跳过前面的空格 */#include #include int atoi(char ... 阅读全文

posted @ 2016-05-14 00:49 海岛Blog 阅读(550) 评论(0) 推荐(0)

I00013 鸡兔同笼
摘要:这是《孙子算经》卷下中的第31题。今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?答曰:雉二十三。兔一十二。初学者通常用穷举法来解这种问题,即把所有可能都试一遍,找出满足条件的解。即便是使用穷举法,也需要把程序编得具有一定的通用性,比如说头或脚的数量变了程序也... 阅读全文

posted @ 2016-05-12 20:53 海岛Blog 阅读(192) 评论(0) 推荐(0)

I00012 打印三位数的水仙花数及其个数
摘要:各个位数的立方数之和等于数本身的数,称为水仙花数。这里使用穷举法打印3位数的水仙花数。程序的关键是如何取出给定数的各个位的值。另外需要注意的一点是,求和变量的初值是零。乘积变量的初值则为1。程序如下:/* 打印三位数的水仙花数及其个数 */#include int m... 阅读全文

posted @ 2016-05-12 20:08 海岛Blog 阅读(198) 评论(0) 推荐(0)

I00011 打印包含7的三位数
摘要:一个三位数,通常指100至999的数。要打印包含7的三位数,只需要对所有的数做一个判定即可,也就是穷举法。这个程序的关键是如何取出第一位数字,第二位数字和第三位数字。程序如下:/* 打印包含7的三位数 */#include int main(void){ int... 阅读全文

posted @ 2016-05-12 19:42 海岛Blog 阅读(148) 评论(0) 推荐(0)

Eratosthenes筛选法(C++版)
摘要:Sieve of Eratosthenes使用埃拉托斯特尼筛选法计算小于100000的素数。埃拉托斯特尼筛选法是最为知名的产生素数的筛选法,适用于产生最小的N个素数。该方法的唯一缺点是使用的存储空间大,可以进一步改进。另外,该算法也不适用于计算某个范围内的全部素数。C... 阅读全文

posted @ 2016-05-09 10:43 海岛Blog 阅读(496) 评论(0) 推荐(0)

HDU5620 KK's Steel(C++语言版)
摘要:问题链接:HDU5620 KK's Steel。问题描述:参见上文。问题分析:刚读到题,有点难解,没有头绪。看了暗示才明白点,有点像菲波拉契数列,不过每一项求的是数列到该项之和。另外略有不同的是,第1项是1,第2项是2。也许是为了三个钢管围起来不能成为三角形的原因。既... 阅读全文

posted @ 2016-05-09 10:09 海岛Blog 阅读(123) 评论(0) 推荐(0)

HDU5620 KK's Steel(C语言版)
摘要:问题链接:HDU5620 KK's Steel。问题描述:参见上文。问题分析:刚读到题,有点难解,没有头绪。看了暗示才明白点,有点像菲波拉契数列,不过每一项求的是数列到该项之和。另外略有不同的是,第1项是1,第2项是2。也许是为了三个钢管围起来不能成为三角形的原因。既... 阅读全文

posted @ 2016-05-09 10:02 海岛Blog 阅读(182) 评论(0) 推荐(0)

大整数分解算法
摘要:重读维基百科整理。特殊分解算法:试除法(Trial division)轮式因子分解法(Wheel factorization)Pollard's rho算法(Pollard's rho algorithm)代数群因子分解算法(Algebraic-group facto... 阅读全文

posted @ 2016-05-09 01:39 海岛Blog 阅读(1189) 评论(0) 推荐(1)

大整数分解算法
摘要:重读维基百科整理。特殊分解算法:试除法(Trial division)轮式因子分解法(Wheel factorization)Pollard's rho算法(Pollard's rho algorithm)代数群因子分解算法(Algebraic-group facto... 阅读全文

posted @ 2016-05-09 01:39 海岛Blog 阅读(2605) 评论(0) 推荐(0)

HDU1319 POJ1595 UVA406 UVALive5490 ZOJ1312 Prime Cuts【素数筛选+打表】
摘要:Prime CutsTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 11505 Accepted: 4373DescriptionA prime number is a counting number... 阅读全文

posted @ 2016-05-08 18:12 海岛Blog 阅读(285) 评论(0) 推荐(0)

HDU1106 排序
摘要:问题链接:HDU1106 排序。问题简述:参见上述链接。问题分析:这个程序的逻辑并不十分复杂,主要是字符串处理和数字字符串转整数的问题。程序说明:转换后的整数需要排序,但这不是重点。排序使用库函数qsort()来实现。因为5被看作空格,需要注意的点有:1.开始的若干个... 阅读全文

posted @ 2016-05-08 09:05 海岛Blog 阅读(128) 评论(0) 推荐(0)

B00004 atoi函数
摘要:这是一个通用的基础程序,将数字字符串转换为整型数。程序如下:/* atoi函数:将字符串s转换为相应的整型数 */#include #include int atoi(char s[]){ int i, n; n = 0; for(i=0; isdi... 阅读全文

posted @ 2016-05-08 06:26 海岛Blog 阅读(120) 评论(0) 推荐(0)

B00004 atoi函数
摘要:这是一个通用的基础程序,将数字字符串转换为整型数。程序如下:/* atoi函数:将字符串s转换为相应的整型数 */#include #include int atoi(char s[]){ int i, n; n = 0; for(i=0; isdi... 阅读全文

posted @ 2016-05-08 06:26 海岛Blog 阅读(146) 评论(0) 推荐(0)

HDU1262 寻找素数对
摘要:问题链接:HDU1262 寻找素数对问题简述:参见上述链接。问题分析:对于输入的偶数,先求得其一半的值,若不为奇数则减去1,然后从这个奇数开始从大到小用奇数试探。根据哥德巴赫猜想,一个偶数可以分解为两个素数之和,其中一个必然小于或等于这个偶数的一半。有了上述的一个奇数... 阅读全文

posted @ 2016-05-08 02:53 海岛Blog 阅读(112) 评论(0) 推荐(0)

HDU1262 寻找素数对
摘要:问题链接:HDU1262 寻找素数对问题简述:参见上述链接。问题分析:对于输入的偶数,先求得其一半的值,若不为奇数则减去1,然后从这个奇数开始从大到小用奇数试探。根据哥德巴赫猜想,一个偶数可以分解为两个素数之和,其中一个必然小于或等于这个偶数的一半。有了上述的一个奇数... 阅读全文

posted @ 2016-05-08 02:53 海岛Blog 阅读(112) 评论(0) 推荐(0)

HDU1282 回文数猜想
摘要:问题链接:HDU1282 回文数猜想。问题简述:参见上述链接。问题分析:这个问题相对就比较简单,需要知道如何判断一个数是否是回文数,加上会控制输入输出即可。程序中用了一个小技巧,判断是否为回文数的函数中,反正都要算逆序数,那就作为一个参数变量的返回值利用一下。不过,根... 阅读全文

posted @ 2016-05-08 00:35 海岛Blog 阅读(97) 评论(0) 推荐(0)

HDU1282 回文数猜想
摘要:问题链接:HDU1282 回文数猜想。问题简述:参见上述链接。问题分析:这个问题相对就比较简单,需要知道如何判断一个数是否是回文数,加上会控制输入输出即可。程序中用了一个小技巧,判断是否为回文数的函数中,反正都要算逆序数,那就作为一个参数变量的返回值利用一下。不过,根... 阅读全文

posted @ 2016-05-08 00:35 海岛Blog 阅读(124) 评论(0) 推荐(0)

HDU1431 素数回文
摘要:问题链接:HDU1431 素数回文。问题简述:参见上述链接。问题分析:看似比较简单的问题,实际上需要一个过程来解决,否则不是时间出问题,就是空间出问题。首先,需要编写一个程序,计算1到100000000之间的回文素数,得到两个值。一是这个区间的最大回文素数是99898... 阅读全文

posted @ 2016-05-07 23:44 海岛Blog 阅读(115) 评论(0) 推荐(0)

HDU1431 素数回文
摘要:问题链接:HDU1431 素数回文。问题简述:参见上述链接。问题分析:看似比较简单的问题,实际上需要一个过程来解决,否则不是时间出问题,就是空间出问题。首先,需要编写一个程序,计算1到100000000之间的回文素数,得到两个值。一是这个区间的最大回文素数是99898... 阅读全文

posted @ 2016-05-07 23:44 海岛Blog 阅读(251) 评论(0) 推荐(0)

I00010 打印1到输入数之间的回文数
摘要:对于一个数,要判定它是否是回文数,直观的做法是先判定其最高位(首位)与最低位(最后一位)是否相同,如果不同则不是回文数;如果相同则其掉其做高位和最低位,对剩余的位继续进行判定;如果剩余的位只有一位或零位(即整个数是偶数位)则为回文数。本程序就是基于这样的基本思想进行计... 阅读全文

posted @ 2016-05-06 23:39 海岛Blog 阅读(208) 评论(0) 推荐(0)

I00010 打印1到输入数之间的回文数
摘要:对于一个数,要判定它是否是回文数,直观的做法是先判定其最高位(首位)与最低位(最后一位)是否相同,如果不同则不是回文数;如果相同则其掉其做高位和最低位,对剩余的位继续进行判定;如果剩余的位只有一位或零位(即整个数是偶数位)则为回文数。本程序就是基于这样的基本思想进行计... 阅读全文

posted @ 2016-05-06 23:39 海岛Blog 阅读(183) 评论(0) 推荐(0)

I00009 用1生成回文数
摘要:这是数学之美系列的一个程序。用1生成回文数是一种办法,1个1到9个1的平方都是回文数,10个1的平方就不是了。程序如下:/* 用1生成回文数 */#include int main(void){ long g=1; int i; for(i=1; i... 阅读全文

posted @ 2016-05-02 10:39 海岛Blog 阅读(137) 评论(0) 推荐(0)

I00009 用1生成回文数
摘要:这是数学之美系列的一个程序。用1生成回文数是一种办法,1个1到9个1的平方都是回文数,10个1的平方就不是了。程序如下:/* 用1生成回文数 */#include int main(void){ long g=1; int i; for(i=1; i... 阅读全文

posted @ 2016-05-02 10:39 海岛Blog 阅读(113) 评论(0) 推荐(0)

B00003 C++标准库 std::bitset
摘要:这个程序是有关std::bitset的简单实例。#include #include using namespace std;int main(){ bitset bitv(0xffff); // bits 0 ... 15 are set to 1; 16 ..... 阅读全文

posted @ 2016-05-02 10:01 海岛Blog 阅读(173) 评论(0) 推荐(0)

B00002 C语言位字段实例
摘要:本程序源自维基百科。Declaring a bit field in C:#include // opaque and show#define YES 1#define NO 0// line styles#define SOLID 1#define DOTTED... 阅读全文

posted @ 2016-05-02 09:04 海岛Blog 阅读(124) 评论(0) 推荐(0)

B00002 C语言位字段实例
摘要:本程序源自维基百科。Declaring a bit field in C:#include // opaque and show#define YES 1#define NO 0// line styles#define SOLID 1#define DOTTED... 阅读全文

posted @ 2016-05-02 09:04 海岛Blog 阅读(178) 评论(0) 推荐(0)

B00001 C语言动态存储分配空间作为数组
摘要:将动态存储分配的空间作为数组的存储空间来使用。使用随机数函数生成数据填入数组中,随机数为整数,值的范围为0到999。用冒泡排序对数据进行排序。程序如下:#include #include#include void getData(int [], int);void p... 阅读全文

posted @ 2016-05-02 07:35 海岛Blog 阅读(151) 评论(0) 推荐(0)

B00001 C语言动态存储分配空间作为数组
摘要:将动态存储分配的空间作为数组的存储空间来使用。使用随机数函数生成数据填入数组中,随机数为整数,值的范围为0到999。用冒泡排序对数据进行排序。程序如下:#include #include#include void getData(int [], int);void p... 阅读全文

posted @ 2016-05-02 07:35 海岛Blog 阅读(203) 评论(0) 推荐(0)

I00008 百鸡问题
摘要:这个问题出自《张邱建算经》卷下。百鸡问题通常用试探法来解决,另外的方法是用求不定方程整数解的方法来解决这个问题。试探法程序中,各种参数用宏定义来给定比较合适。如果将本程序用于求解其他问题,只需要修改这些宏定义。有了这个程序,很容易将这些宏定义值改为程序输入。程序中分别... 阅读全文

posted @ 2016-05-01 19:20 海岛Blog 阅读(159) 评论(0) 推荐(0)

I00008 百鸡问题
摘要:这个问题出自《张邱建算经》卷下。百鸡问题通常用试探法来解决,另外的方法是用求不定方程整数解的方法来解决这个问题。试探法程序中,各种参数用宏定义来给定比较合适。如果将本程序用于求解其他问题,只需要修改这些宏定义。有了这个程序,很容易将这些宏定义值改为程序输入。程序中分别... 阅读全文

posted @ 2016-05-01 19:20 海岛Blog 阅读(186) 评论(0) 推荐(0)

I00007 打印菱形字符图案
摘要:曾经的计算机,没有显示屏,人们操作计算机时,用打印机记录执行的操作命令。后来有了显示屏,不过最初的显示屏是字符频幕,输出只能是字符。即使是今日,计算机已经进入多窗口图形界面时代,有时程序的输出也依然是字符的。打印菱形程序,关键是有关循环控制,只是控制逻辑多一些。对于输... 阅读全文

posted @ 2016-05-01 18:15 海岛Blog 阅读(151) 评论(0) 推荐(0)

I00007 打印菱形字符图案
摘要:曾经的计算机,没有显示屏,人们操作计算机时,用打印机记录执行的操作命令。后来有了显示屏,不过最初的显示屏是字符频幕,输出只能是字符。即使是今日,计算机已经进入多窗口图形界面时代,有时程序的输出也依然是字符的。打印菱形程序,关键是有关循环控制,只是控制逻辑多一些。对于输... 阅读全文

posted @ 2016-05-01 18:15 海岛Blog 阅读(140) 评论(0) 推荐(0)

导航