摘要:
一、二进制数字表达方式原本整数(以60为例)能够用十进制(60)、八进制(074)、十六进制(0x3c)表示,唯独不能用二进制表示(111100),Java 7 弥补了这点。1 public class BinaryInteger2 {3 public static void main(String[] args) {4 int a = 0b111100; // 以 0b 开头5 System.out.println(a); //输出606 }7 }二、使用下划线对数字进行分隔表达原本表示一个很长的数字时,会看的眼花缭乱(比如1... 阅读全文
摘要:
DescriptionLarry今年毕业并且找了一份工作。他赚了很多钱,但是不知道为什么他从来不觉得自己赚的已经足够。Larry决定他需要管理他的钱并且解决他的金融问题。第一步是需要了解他的钱怎么样了。Larry有他的银行账户报表,希望了解他有多少钱。帮助Larry写一个程序,获得他过去12个月的余额,并且计算他的平均账户余额。Input输入有12行。每行都包含一个月的余额。每个数字都是正的,且不包含$。Output输出是一个数字,是12个月的平均余额。并且在前面需要加上一个$标记,最后跟上一个\n。Sample Input100.00489.1212454.121234.10823.0510 阅读全文
摘要:
Description在1742年,Christian Goldbach,一个德国数学家发了一封邮件给欧拉,说明了他的猜想: 每个超过4的偶数都能写成两个素数相加。比如: 8 = 3 + 5. 20 = 3 + 17 = 7 + 13. 42 = 5 + 37 = 11 + 31 = 13 + 29 = 19 + 23.现在这个猜想是否正确仍没有被证明(当然我已经证明了,但是因为证明过程太长了,所以就不写下来了)。不管怎样,你的任务是验证小于一百万的所有偶数是否满足这个猜想。Input输入包含了1个或多个测试用例。每个测试用例是一个偶数n($6 \leq n<1000000$)。输入以. 阅读全文
摘要:
Description一个素数是一个只能被1和自己整除的数(这里1是素数)。在这个问题中,你需要写一个程序,这个程序能够在[1,N]范围的素数列表中截取一部分素数。你的程序将读入一个数字N,判定[1,N]中的素数列表L;如果L的长度是偶数,则输出最中间的C*2个素数,如果L的长度是奇数,则输出最中间的C*2-1个素数。Input每个输入集都在一行中,且包含两个数字,第一个数字是N($1\le N \le 1000$),第二个数字是C($1 \le C\le N$),我们需要求出[1,N]中的全部素数组成一个列表,如果这个列表长度是偶数,则输出最中间的C*2个素数;如果这个列表长度是奇数,则输出 阅读全文
摘要:
问题描述给定一个正整数 $n$,输出不超过 $n$ 的全部素数。算法描述写出$2\cdots n$所有的数。计算出 $m=\sqrt{n}$ ,把不超过 $m$ 的所有素数的倍数(不能是素数本身)全部删除,剩下的就是 $2\cdots n$中的素数。算法复杂度$O(n)$正确性证明命题:给定一个合数x,一定存在不超过 $\sqrt{x}$ 的素数 P,且 $x \% p=0$。证明:我们从1开始找合数,设 $x$ 为第一个不满足上述条件的合数。因为 $x$ 是一个合数,因此存在 $a$,使得 $x \% a=0$。 (1)$a$是合数。因为$a$小于$x$,因此$a$满足:存在不超过 $\s. 阅读全文
摘要:
Description Andy是计算机系的非常聪明的一个学生,她参加了一门算法课,教授问了学生一个简单的问题:“你能不能高效地在一个字符串中找到最长回文子串呢?”。 如果一个字符串从前往后读和从后往前读是一样的,则字符串被称为是回文。比如“madam”是回文,而“acm”不是回文。 学生意识到这是一个经典的问题,但是他们只能够想到列举所有的子串并且判断这个子串是不是回文,很明显这个算法并不高效,这时Andy举手说:“我有一个更好的算法”,在他开始解释他的思想之前他停了一会,并说:“我有了一个更好的算法”。 如果你认为你知道Andy的最后解决方案,那么解决他吧。给定一个长度至多为1,0... 阅读全文
摘要:
递推关系:$C_n=C_0C_{n-1}+C_1C_{n-2}+\cdots+C_{n-2}C_{1}+C_{n-1}C_{0}$其中,$C_1=1,C_0=1$显示公式:$C_n=\frac{1}{n+1}C_{2n}^{n}$证明$C_n=\frac{1}{n+1}C_{2n}^{n}$定理1:${-1/2 \choose n}=\frac{{2n \choose n}}{(-4)^n}$证明:用数学归纳法对 n 归纳。当 $n=1$ 时,${-1/2 \choose 1}=\frac{{2 \choose 1}}{-4}=-\frac{1}{2}$。假设 $n=k$ 时成立。当 $n=k 阅读全文
摘要:
一般情况下,\[{n \choose k}=\frac{n(n-1)\cdots(n-k+1)}{k!}\]\[(1+x)^n=\sum_{k=0}^{n}C_{n}^{k}x^k\]上述情况适用于 $n>0$,当 $n<0$ 时就不适用了。我们首先定义一些特殊情况:当 $n<k$ 且 $n>0$时,${n \choose k}=0$。当 $k=0$ 时,${n \choose k}=1$。因此:\[{n \choose k}=\left\{ \begin{array}[ll] n(n-1)\cdots(n-k+1)/(k!) & k>0 \\ 1 &am 阅读全文
摘要:
Labeled Tree: 每个节点都有标号的树,如图1(a)。Unlabeled Tree: 节点没有标号的树,如图1(b)。Cayley' Tree Formula: There are $n^{n-2}$ distinct labeled trees of order n.Prufer's Method:a labeled tree of order n is one-to-one correspondence with a sequence of length n-2.Prufer's Method 能够帮助我们更简单地证明 Cayley's Tree 阅读全文
摘要:
Description你肯定经历过太多太多的人同时上网吧?网络会变得非常,非常慢。为了解决这个问题,Ulm大学建立了一种机制:在高峰时段公平地断开某些城市的网络。德国的城市被随机地编号为1到n。Freiburg编号为1,Ulm编号为2,Karlsruhe编号为3,其他的也是完全随机的编号。然后数字m会被随机的选取,网络总是会先断开城市1的网络,然后每m个城市断开一个城市,并且从1到n不断循环,且忽略那些已经被断网的城市。比如,如果n=17,m=5,则网络断开的城市顺序为[1,6,11,16,5,12,2,9,17,10,4,15,14,3,8,13,7]。并且还要规定Ulm城市会被最后一个断开 阅读全文