红宝石挖掘工

Dig ruby with Pickaxe

ProjectEuler_Problem4

Find the largest palindrome made from the product of two 3-digit numbers.

找到能表示成两个三位数乘积的最大的回文数。

思路就是遍历所有三位数的乘积判断是不是回文数,再选出最大的来

result = 0
  999.downto(100) do |x|
    999.downto(100) do |y|
      if (x * y).to_s.reverse == (x * y).to_s
        result = [result, x*y].max
      end
    end
  end
p result

 

 

 

[回忆]用概率算pi

这个也是06年的。当时物理老师讲到了,下课我就去做了出来

原理如下:

有一个半径为r的圆外接一个边长为2r的正方形。
S圆 = r**2*pi
S方 = 2r**2
现在往正方形里撒点,撒到圆里的点的个数比撒到圆外的点的个数的比就是一个与pi有关的式子,就能估算出近似的pi来,撒的点越多值越精确。

继续阅读

最早写这个的时候是2006年,我还在上高一。用了大概两个中午的时间。

写完之后才发现原来mathn库里已经有了这个方法。

不过令人欣慰的是我写的比它快!

以下是代码

继续阅读