编程 | 玄数

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上的编程。
(更多…)


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 + “次”);
  }

}

(更多…)