小编Meg*_*get的帖子

以毫秒精度测量时间

我的程序将在时间和空间上相互竞争不同的排序算法.我有空间,但测量时间给我带来了一些麻烦.以下是运行排序的代码:

void test(short* n, short len) {
  short i, j, a[1024];

  for(i=0; i<2; i++) {         // Loop over each sort algo
    memused = 0;               // Initialize memory marker
    for(j=0; j<len; j++)       // Copy scrambled list into fresh array
      a[j] = n[j];             // (Sorting algos are in-place)
                               // ***Point A***
    switch(i) {                // Pick sorting algo
    case 0:
      selectionSort(a, len);
    case 1:
      quicksort(a, len);
    }
                               // ***Point B***    
    spc[i][len] = memused;     // Record how much mem was used
  }
}
Run Code Online (Sandbox Code Playgroud)

(为简单起见,我删除了一些排序算法) …

c time

6
推荐指数
2
解决办法
2万
查看次数

浮点格式化为16

我正在编写一个Lisp程序来使用Spigot算法来近似pi,该算法一次找到一个数字而不需要先前计算的任何数字.这个:

方程

假设一次只输入一个十六进制数字,但是测试它我们有连续调用(迭代i)产生Lisp众所周知的分数:

2F/F 6A/333 33D/4CB3 13C/3B79

等等.这是使用带有~x参数的格式函数实现的:

 (format t "~x" [some number])
Run Code Online (Sandbox Code Playgroud)

或者,

 (format t "~d" [some number])
Run Code Online (Sandbox Code Playgroud)

产生基数10位小数:

3.1333334 0.12942614 0.042220525 0.020755336

但是我想要十六进制的小数,例如,如果一轮产生0.5,那么我想要0.8; 如果基数10是0.75,那么我想要0.C. 这样我就可以分别计算出pi的每个十六进制数字,这是我选择这个Spigot算法的原因.我也可以使用表格的小部分(n/16 ^ k),因为这可以很容易地转换成十六进制小数.

这可能吗?

lisp format hex

3
推荐指数
1
解决办法
575
查看次数

标签 统计

c ×1

format ×1

hex ×1

lisp ×1

time ×1