我在编程环境中听到相当多的对数.它们似乎是许多问题的解决方案,但我似乎无法找到一种利用它们的现实方式.我已经阅读了维基百科条目,坦率地说,这让我毫不在意.
那么,我在哪里可以了解对数解决的实际编程问题?有没有人有任何他们遇到的问题的例子,通过实现对数来解决?
编程中的对数也经常用于描述使用Big O表示法的算法的效率.
例如,二进制搜索算法将具有O(log(n))的最坏情况场景(在有序集合上),而线性搜索的最坏情况是O(n)
假设你有1000美元,它是一个储蓄账户,利息为2.4%.
你有多少年要等到2000美元买一台新笔记本电脑?
1000×1.024 x = 2000
1.024 x = 2
x = log 1.024 2 = 29.23年
在我自己的研究中,我发现了一些有用的资源:
这是一组关于对数的很棒的课程.这位来自六年级学生的评论总结得很好:
非常感谢.本周,我的数学老师告诉我挑战自己,所以我尝试了对数.起初我觉得,'我不能这样做,这太难了'.然后我看了视频,现在他们甚至都很有趣!我六年级,我的数学老师印象深刻.我不能够感谢你.
本文包含一个很好的示例,使用基数2日志来确定完成淘汰赛所需的回合数量给予x队.
一个优秀,直观(正如你所期望的,给定标题),指导e,自然对数的基础.大量的插图和例子使这成为一篇文章的宝石.
这是关于e的文章的后续内容,并讨论了自然对数(ln),它使用文章中给出的直观解释,"给你达到一定增长水平所需的时间".
Better Explained实际上有很多好的内容网站.真的,一个辉煌的资源.
我之前遇到过的另一个工具却是完全忘记的是Instacalc.它似乎是由同一个人 - Kalid Azad--创作了Better Explained网站.这是一个非常有用的工具,当黑客数学.
日志是一种元算术.这是一种思考每个数字作为一个(可能是固定的)基数的方式.仅对指数执行操作.这意味着您可以通过添加和减少日志来进行乘法和除法.换句话说,您将数据放入日志空间,执行一套算术,然后将其拉回到非日志空间.如果浮点精度损失以及变换进出日志空间的开销很便宜,那么您可能会获得整体胜利.
你可以用日志做一个光滑的技巧,计算一个数字在打印时所占用的字符数,取数字的log-base-2并除以log-base-10(2),即恒定时间与一组乘法相比较.