[开发工具]

使用查表提速计算

[复制链接]
190|7
手机看帖
扫描二维码
随时随地手机跟帖
jf101|  楼主 | 2024-1-29 10:53 | 显示全部楼层 |阅读模式


一个资深的C语言程序员,基本上不会在自己的主循环里搞什么复杂的运算工作,绝对都是先计算好了,再到循环里查表。看下面的例子:

旧代码:

long factorial(int i)
{
    if (i == 0)
      return 1;
    else
      return i * factorial(i - 1);
}

查表法新代码:

static long factorial_table[] = {1, 1, 2, 6, 24, 120, 720  /* etc */ };
long factorial(int i)
{
    return factorial_table[i];
}

如果需要建立的表很大,那么可以通过一个初始化函数,在循环外临时生成表格。

使用特权

评论回复
tpgf| | 2024-2-2 14:19 | 显示全部楼层
可以一边计算一边查表吗?会不会降低工作效率

使用特权

评论回复
coshi| | 2024-2-2 14:59 | 显示全部楼层
查表虽然可以对计算进行提速 但是感觉结果并没有那么精确

使用特权

评论回复
qcliu| | 2024-2-2 19:07 | 显示全部楼层
使用什么语句进行查表 也 要根据表格的规模来定

使用特权

评论回复
drer| | 2024-2-2 19:44 | 显示全部楼层
如果表格中的数据都是固定数据且没有规律的话 应该怎么办呢

使用特权

评论回复
kxsi| | 2024-2-2 20:16 | 显示全部楼层
使用软件查表的方式 也是要看应用的目的的

使用特权

评论回复
wiba| | 2024-2-2 20:53 | 显示全部楼层
如果不能实现临时生成表格的话  数据量大的话 占用的空间会不会就很大呢

使用特权

评论回复
scu319hy| | 2024-2-3 00:39 | 显示全部楼层
动态规划变成静态规划

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

193

主题

1337

帖子

2

粉丝