计算机数学 | 玄数

2017-12-28

如何用程序来绘制正多边形?

正多边形

如图,正五边形ABCDE关于y轴对称,B与E,C与D互为对称点。A的坐标为(0, r)。 半径OA旋转一个内角θ,便是OB,此时B的坐标为(r·sin0, r·cos0)。继续旋转,可以得到OC、OD、OE等半径,坐标求法与OB的一致,只需把对应的角度依次增加(2π/边数)。

 

编程的流程图如下:

 

algorithm regular polygon
(更多…)


2017-02-28

科赫雪花 Koch snowflake
把等边三角形的每一边三等分,以中间的一段为边长,向外作等边三角形,并将中间的这一段移去。不断的重复此步骤,便可得到一个美丽的雪花曲线图案。此图案有个几何名称:科赫曲线Koch curve / Koch snowflake。

这么可爱的曲线怎么用程序绘制出来呢?现介绍javascripte在Html5 Cavas上的编程。
(更多…)


2015-02-19
芯片 集成度 频率 地址总线 数据总线 存储器寻址空间 一级缓存 二级缓存 三级缓存 年份
第一代微处理器,PMOS
4004 2300 1971
第二代微处理器,NMOS
8080 4500 2M 16 8 64KB 1974
第三代微处理器,HMOS
8086 29,000 5M,8M,10M 20 16 1MB 1978
80286 134,000 12M,20M,25M 24 16 16MB 1982
第四代微处理器,CHMOS
80386SX 275,000 16M,25M,33M 24 16 16MB 1985
80386DX 275,000 16M,33,40M 32 32 4GB
80486DX 1,200,000 25M~100M 32 32 4GB 8KB 1989
第五代微处理器,CMOS
Pentium 3,100,000 66M~200M 32 64 4GB 16KB 1993
Pentium MMX 4,500,000 200M~300M 32(36) 64 64GB 16KB 1996
Pentium Pro 5,500,000 150M~200M 36 64 64GB 16KB 256KB 1995
Pentium Ⅱ 7,500,000 233M~450M 36 64 64GB 32KB 512KB 1997
Pentium Ⅱ Xeon 1998
Celeron 1999
Pentium Ⅲ 9,500,000 450M~1.4G 36 64 64GB 32KB 512KB 1999
Pentium Ⅲ Xeon 1999
Pentium 4 42,000,000 1.3G~2.8G 36 64 64GB 32KB 256KB~1MB 2000
Xeon 2001
Itanium 2001
Pentium M / Celeron M 2003
Pentium D 2.8G~3.7G 2×1MB 2005
第六代微处理器
Core 2005
Core 2 167,000,000 1.8G~3.2G 2006
Atom 2008
Core i7 2.66G~3.2G 8MB 2008
Core i5 4MB,8MB 2010
Core i3 4MB 2010

Intel CPU的进化史


2014-11-04

1、冒泡排序 Bubble Sort:

  • 从列表的第一个元素开始,与相邻的元素比较,若前者>后者,便交换两个元素。直到把最大的元素排到了最末,完成第一次排列
  • 重复第一步,但比较的次数会减一,直到把第二大的元素排到了倒数第二,完成第二次排列
  • 重复第一步,比较次数依次减一,直到把最小的元素排在首位

 

java程序如下:

import java.util.Arrays;

public class SortOrder {

  int[] array = {9, 7, 5, 3, 1};
  int c = 0;
  int m = 0;

  private void bubbleSort(){

    for(int i = array.length – 1; i > 0; i–){

      for(int j = 0; j < i; j++){
        c++;
        if(array[j] > array[j+1]){
          int temp = array[j];
          array[j] = array[j+1];
          array[j+1] = temp;
          m++;
          System.out.println(Arrays.toString(array));
        }
      }
    }
  }

  public static void main(String[] args) {

    SortOrder sort = new SortOrder();
    sort.bubbleSort();

    System.out.println(“这个算法一共比较了” + sort.c + “次”);
    System.out.println(“移动了” + sort.m + “次”);
  }

}

(更多…)


2012-06-25

1.  BCD码:Binary – Coded Deimal

 

用二进制编码的十进制:将十进制数的每一位以二进制数编码的方式表示。十进制的0 ~ 9分别用BCD数的0000到1001表示,而不是将十进制转换为二进制。

十进制 1 2 3 4 5 6 7 8 9
二进制 1 10 11 100 101 110 111 1000 1001

 

BCD码有压缩与非压缩两种形式。压缩BCD数据以每字节2个数字的形式存储,非压缩BCD数据以每字节1个数字的形式存储。

十进制 压缩BCD 非压缩BCD 二进制
12 00010010 0000000100000010 1100
623 0000011000100011 000001100000001000000011 001001101111

 

 

2.  BCH码:Binary – Coded Hexadecimal

用二进制编码的十六进制:将十六进制数的每一位以二进制数编码的方式表示,为了便于阅读,数位之间用空格分开。

二进制 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111
十六进制 1 2 3 4 5 6 7 8 9 A B C D E F

 

例:3AC6 H = 0011 1010 1100 0110 B

BCD码, BCH码


2012-06-04

1.   根据公式进行转换

二进制与十进制数的对照

二进制 1 10 11 100 101 110 111 1000 1001
十进制 1 2 3 4 5 6 7 8 9
20 21 21 + 20 22 22 + 20 22 + 21 22 + 21 + 20 23 23 + 20

任何十进制数都可以拆分成2的n次幂的和,其他数制也一样。所以你也可以根据

数制

作逆向思维推导,把十进制转换为其他数制。只要你n次幂中的n由高写向低,把对应n次幂的倍数写出,并在不能写出幂的地方补0。把如:

(1)7 = 22 + 21 + 20

.             1       1        1

(更多…)


2012-05-03

1.  数制 Number System

我们平时生活中使用最广泛的是十进制(Decimal),它由0,1,2,3,4,5,6,7,8,9 这10个数字组成,逢十进一。如:买东西时付钱的钞票、物体重量的衡量、路程的长短 … … 它来源于我们的老祖宗在原始社会时就观察到身体都有10个手指与10个脚趾,使用10来做进位计算是最自然也最方便了。

 

除了十进制外还有其他数制系统:

十进制 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
二进制 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000
三进制 1 2 10 11 12 20 21 22 100 101 102 110 111 112 120 121
四进制 1 2 3 10 11 12 13 20 21 22 23 30 31 32 33 100
五进制 1 2 3 4 10 11 12 13 14 20 21 22 23 24 30 31
六进制 1 2 3 4 5 10 11 12 13 14 15 20 21 22 23 24
七进制 1 2 3 4 5 6 10 11 12 13 14 15 16 20 21 22
八进制 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20
九进制 1 2 3 4 5 6 7 8 10 11 12 13 14 15 16 17
十六进制 1 2 3 4 5 6 7 8 9 A B C D E F 10

 

还有十二进制:一年12个月,二十四进制:一天24个小时,六十进制:一分钟60秒 … … 所谓的数制就是每逢x就进一位。

(更多…)