Сообщения

Сообщения за 2013
Обзор набирающих популярность сайтов от ArtificialCasting.com 


Как и ранее, я решил написать о некоторых сайтах обнаруженных монитором быстрорастущих сайтов - ArtificialCasting.com

Не в каком-либо порядке, а просто в случайном, так мне удобнее

https://www.bitstamp.net/ - онлайн биржа по торговле биткоинами. Многие знают про эту валюту, здесь вы сможете их обменять. Сайт устойчиво и трендово растет.

http://www.songlust.com/ - здесь можно скачать mp3 - удивительно, такие сайты до сих пор популярны и могут быть привлекать аудиторию.

http://www.mondoclub.com/  - новое поколение социальных сетей, с возможностью вещать видео о своей жизни в интернет. Эдакий чатрулет для всех.

http://pass.us/ - сервис для организации шаринга своих фотографий. Целевая аудитория - фотографы, очень качественно сделанный сервис (внешне).

http://www.luxa.ru/ - набирающий популярность русскоязычный ресурс для бронирования отелей.

Тестирование метода поиска факториала числа в Ruby

Порой требуется найти факториал числа в ruby. Встроенного метода нет, поэтому добавим в класс Integer свой. Вот реализации поиска факториала найденные в сети, какой из них лучше?
После проведения теста в ruby 1.8.7 (2012-02-08 patchlevel 358) [i686-darwin12.2.0] оказалось что третий ( обозначен как inject_factorial) в ruby 1.9.2 результат примерно такой же.


require "benchmark"
class Integer
  def factorial_recursive
    self <= 1 ? 1 : self * (self - 1).factorial
  end
  def factorial_iterative
    f = 1; for i in 1..self; f *= i; end; f
  end
  def inject_factorial
    self.downto(1).inject(:*)
  end
  alias :factorial :inject_factorial
end


Benchmark.bm(70) do |x|
  x.report("factorial_recursive:")   { (1..120).each { |i| i.factorial_recursive } }
  x.report("factorial_iterative:") { (1..120).each { |i| i.factorial_iterative }}
  x.report("inject_factorial:")  { (1..120).each { |i| i.inject_factorial }}
end


Третий метод, показал себя быстр…

Решение задачи коммивояжера (TSP Traveling Salesman Problem)

Вполне возможно вам известна задача коммивояжера,
 Подробнее на русском тут  или на английском тут
На данный момент, из известных мне реализаций алгоритмов для решения этой NP трудной задачи, является конкорд, не смотря на то, что последняя модификация от 2003 года, он отлично решает эти задачи, и вероятно по прежнему лучше всех. Задача на нескольких тысячах точек, может решаться часами, именно поэтому требуется быстрое и эффективное решение вроде конкорда.

Возможно, вы захотите установить его под Mac Os, и вероятно не получится с первого раза откомпилировать код, в таком случае по совету Cartera рекомендую скачать небольшой скрипт который автоматически скачает версию конкорда и необходимые библиотеки qsort и откомпилировав установит. Скачать его можно тут http://code.google.com/p/eggbotcode/downloads/detail?name=build-concorde-osx-0_2.sh