Factstone Benchmark Amtel has announced that it will release a 128-bit computer chip by 2010, a 256-bit computer by 2020, and so on, continuing its strategy of doubling the word-size every ten years. (Amtel released a 64-bit computer in 2000, a 32-bi…
题目链接 Problem Description Amtel has announced that it will release a 128-bit computer chip by 2010, a 256-bit computer by 2020, and so on, continuing its strategy of doubling the word-size every ten years. (Amtel released a 64-bit computer in 2000, a…
[问题描述] Amtel已经宣布,到2010年,它将发行128位计算机芯片:到2020年,它将发行256位计算机:等等,Amtel坚持每持续十年将其字大小翻一番的战略.(Amtel于2000年发行了64位计算机,在1990年发行了32位计算机,在1980年发行了16位计算机,在1970年发行了8位计算机,并首先在1960年发行了4位计算机) Amtel将使用新的标准检查等级——Factstone——来宣传其新芯片大大提高的能力. Factstone等级被定义为这样的最大整数n,使得n!可以表示为…
//题意是对于给定的x,求满足n! <= 2^(2^x)的最大的n//两边同取以二为底的对数,可得: lg2(n!) <= 2^x 1.   log2(n!) = log2(1) + log2(2) + .. + log2(n);一个循环即可 2.   Stirling #include <iostream> #include <string> #include<sstream> #include <cmath> #include <map…
题意:求满足n! < 2^k,n的最大值! 解题:指数比较转换成对数比较,达到降幂! 其中: log (n!) = log(n)+log(n-1)+...+log(1); log(2^k) = k * log(2);   当然也可以使用斯特林(stirling 公式求解) 公式如下: 程序代码: ============================================ #include<iostream> #include<cmath> using names…
/** 大意: 求m!用2进制表示有多少位 m! = 2^n 两边同时取对数 log2(m!) = n 即 log2(1) + log2(2)+log2(3)+log2(4)...+log2(m) = n 枚举即可 拓展: 可以用斯特林(Stirling)公式求解 斯特林(Stirling)公式: log(x) =====ln(x) **/ #include <iostream> #include <cmath> using namespace std; int main() {…
这道题列出不等式后明显是会溢出的大数,但是没有必要写高精度,直接两边取对数(这是很简明实用的处理技巧)得: log2(n!)=log2(n)+log2(n-1)+...+log2(1)<=log2(2k-1)<k 其中k是第y年计算机的位数. 注意C++中log(n)是以e为底的对数,log10(n)是以10为底的对数,若要计算loga(b),用换底公式loga(b)=logx(b)/logx(a)即可. #include<iostream> #include<cstdio&…
http://poj.org/problem?id=2661 题意:Amtel在1960年发行了4位计算机,并实行每十年位数翻一番的策略,将最大整数n作为改变的等级,其中n!表示计算机的无符号整数(n!<=无符号整数).给出一个年份1960<=y<=2160,求此时计算机的等级n是多少? 思路:首先求出计算机在第y年的位数k,则此时计算机的无符号整数为2^k-1,则 n!<=2^k-1, 直接求n的阶乘容易溢出,此时可以两边同时取对数得: log2(n!)<=log2(2^k…
传送门 题意: 给出\(x,x\leq 12\),求最大的\(n\),满足\(n!\leq 2^{2^x}\). 思路: 通过斯特林公式: \[ n!\approx \sqrt{2\pi n}\cdot (\frac{n}{e})^n \] 我们一般可以认为这两个相等= = 将阶乘转化为一个比较好求的式子,然后二分判断一下即可. /* * Author: heyuhhh * Created Time: 2019/12/10 21:14:22 */ #include <iostream> #in…
题目 Volume 0. Getting Started 开始10055 - Hashmat the Brave Warrior 10071 - Back to High School Physics 10300 - Ecological Premium 458 - The Decoder 494 - Kindergarten Counting Game 414 - Machined Surfaces 490 - Rotating Sentences 445 - Marvelous Mazes…