首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >摩尔定律的估计值是多少,一个这样做的程序

摩尔定律的估计值是多少,一个这样做的程序
EN

Stack Overflow用户
提问于 2011-03-06 14:06:01
回答 3查看 456关注 0票数 0

1988年,Intel386 SX微处理器中的晶体管数量为275,000个。在1997年,奔腾II英特尔微处理器的晶体管数是多少?

如果英特尔每两年将晶体管数量翻一番,新处理器将拥有

代码语言:javascript
运行
复制
Pn = 275,000 * 2^n (where n = 9/2 = 4.5)    
   = 275,000 * 22.63
   = 6.2 million transistors

那么,如何使用C、C++或java实现此功能的代码呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-06 14:45:07

在C中:

代码语言:javascript
运行
复制
#include <stdio.h>
#include <math.h>

#define BASELINE_CPU_YEAR 1988
#define BASELINE_CPU_TRANSISTORS 275000

/* Estimate transistor count for Intel CPUs for a given year
 * based on Moore's law */
double moores_law(int year) {
        float year_offset = (year - BASELINE_CPU_YEAR) / 2.0;
        return BASELINE_CPU_TRANSISTORS * pow(2, year_offset);
}

int main () {
        int year = 1997;
        printf("Moore's law projects a %d CPU would have %.2f transistors.\n", 
                year, moores_law(year));

        return 0;
}
票数 0
EN

Stack Overflow用户

发布于 2011-03-06 17:15:01

确实如此。摩尔在1975年改变了他的预测,每两年将晶体管的数量增加一倍。

代码语言:javascript
运行
复制
#include <stdio.h>
#include <math.h>

int main () {
    double transistors = 275000;
    double years = 1997-1988;
    printf("%f", transistors*pow(2.0,years/2)); // 6222539.674442
    getch();
    return 0;
}
票数 2
EN

Stack Overflow用户

发布于 2011-03-06 14:14:14

在java或c#中,您可以这样做

代码语言:javascript
运行
复制
int year = 2010; //for example

double  P0 = 275000;
float n = ((float)year - 1988) / 2; //1988 -> base year

double Pn = P0 * (Math.Pow(2, n));
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5209019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档