`
秦朝古月
  • 浏览: 226876 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

读《The Ruby Way》之数值计算

    博客分类:
  • Ruby
阅读更多
世界杯至今为止的比赛都看了,不过很多比赛都是在三心二意的看,凌晨的比赛则是在半睡半醒间。

Ruby的国际化这章,对UTF-8终于有了个比较全面的认识。也了解了一下jcode库

执行数值计算,学到了更多的东西。

数字原来可以这么表示。
1_048_576    # 和 1048576 相同

sprintf也有一个类似的方法。
str = 345.6789
str = sprintf("%5.1f", x)  # "345.7"
str = "%5.1f" % x          # "345.7"

矩阵Matrix。(非标准库NArray很有名)
m = Matrix[[1,2,3],[4,5,6],[7,8,9]]

有理数和复数
x = Rational(1,3)  # 1/3
y = Complex(3,5)   # 3+5i

使用memoize缓存函数结果,也是非标准库。作者居然在这节实现了一个简单的遗传算法。
require 'memoize'
indclude Memoize

def zeta(x, y, z)
  lim = 0.0001
  gen = 0
  loop do
    gen += 1
    p, q = x + y/2.0, z + y/2.0
    x1, y1, z1 = p*p*1.0, 2*p*q*1.0, q*q*0.9
    sum = x1 + y1 + z1
    x1 /= sum
    y1 /= sum
    z1 /= sum
    delta = [[x1, x], [y1, y], [z1, z]]
    break if delta.all? {|a, b| (a-b).abs < lim}
    x, y, z = x1, y1, z1
  end
  gen
end

g1 = zeta(0.8, 0.1, 0.1)
memorize(:zeta)            # 存在内存中
g2 = zeta(0.8, 0.1, 0.1)
memorize(:zeta, "z.cache")            # 存在内文件中
g3 = zeta(0.8, 0.1, 0.1)

分享到:
评论

相关推荐

    The Ruby Way(第2版)

    The Ruby Way(第2版) &lt;br&gt;The Ruby Way assumes that the reader is already familiar with the subject matter. Using many code samples it focuses on "how-to use Ruby" for specific applications, either ...

    The Ruby Way--3rd Edition--2015-英文版

    The Ruby Way 第三版(英文版),全书22章,书中包含600多个按主题分类的示例。每个示例都回答了“如何使用Ruby来完成”的问题。 ——Ruby on Rails之父David Heinemeier Hansson倾力推荐!

    THE RUBY WAY(中文版)(第二版)pdf

    《The Ruby Way 第二版》...“《The Ruby Way (第2版)中文版》在阐述元编程(metaprogramming)等方面尤其出类拔萃,而元编程是Ruby最引人注目的方面之一。” ——Ruby on Rails之父David Heinemeier Hansson倾力推荐!

    the-ruby-way

    the ruby way the ruby way

    the ruby way 2ed

    《The Ruby Way 2nd Edition》是一本深入探讨Ruby编程语言的经典著作,旨在帮助读者全面理解和掌握Ruby的精髓。这本书的第二版在2006年出版,由Addison-Wesley出版,作者通过深入浅出的方式,揭示了Ruby语言的强大...

    ruby学习资源(Programming Ruby, Learning Ruby, The Ruby Way)

    内含以下4个文档: 1、Addison.Wesley.The.Ruby.Way.2nd.Edition.Oct.2006.chm 2、O'Reilly.Learning.Ruby.May.2007.chm 3、Programming Ruby 2e.pdf 4、ruby中文文档.chm

    11.5 时间日期the ruby way.rar

    "11.5 时间日期the ruby way"这个主题深入探讨了Ruby中处理时间日期的最佳实践和常见用法。让我们逐一了解这些知识点。 首先,`Time.now`是Ruby中获取当前时间的标准方法。它返回一个`Time`对象,表示自1970年1月1...

    the ruby way

    《The Ruby Way》是一本备受推崇的Ruby编程教程,它以独特的方式深入浅出地介绍了Ruby语言。这本书的核心理念是“如何解决问题”,作者通过实际的编程示例和问题解决策略,帮助读者理解Ruby的强大功能和优雅语法。 ...

    Addison Wesley The Ruby Way 2Nd Edition Oct 2006.pdf(英文版)

    ### Addison Wesley《The Ruby Way》第二版(2006年10月) #### 书籍概览 《The Ruby Way》是由Hal Fulton编写的关于Ruby编程语言的经典著作,该书的第二版出版于2006年10月,由Addison Wesley Professional出版社...

    Learn Python the Hard Way(高清.英文.书签.第三版).pdf

    Shaw is the author of the popular online books Learn Python the Hard Way, Learn Ruby the Hard Way, and Learn C the Hard Way. He is also the creator of several open source software projects like ...

    The Ruby Way(处理文件和目录)

    计算机的主要功能之一就是处理数据,这不仅包括内部计算,还包括输入输出(I/O)操作,即与外部世界的交互。Ruby作为一种现代的编程语言,为用户提供了一套强大且灵活的方式来处理文件和目录。下面将详细介绍Ruby中...

    The Ruby Way

    Ruby is a fully object-oriented, dynamic scripting language which borrows some of the best features from LISP, Smalltalk, Perl, CLU, and other languages, and blends them into a harmonious whole. The ...

    Addison.Wesley.The.Ruby.Way.2nd.Edition.Oct.2006.chm

    《The Ruby Way》第二版是Addison-Wesley出版社在2006年推出的一本深入浅出的Ruby编程语言教程。这本书专为初学者设计,旨在帮助读者快速掌握Ruby语言的基础和高级特性,从而轻松入门Ruby编程。Ruby是一种动态、开放...

    the rails way

    《The Rails Way》一书由Obie Fernandez撰写,属于Addison-Wesley Professional Ruby系列,该系列致力于为读者提供实用、面向人且深入的信息,帮助他们利用Ruby平台创建动态技术解决方案。这一系列书籍的创立基于一...

Global site tag (gtag.js) - Google Analytics