?

Log in

a_fixxer
Свежие записи 
Жена у меня работает преподавателем в учреждении среднего профессионального образования (ПТУ). Пару месяцев назад принесли бланк заявления о вступлении в Единую Россию, и в ультимативном тоне потребовали заполнить и подписать. Жена отказалась наотрез. Дело даже не в партии, а в той форме, в которой это было подано. И вот сегодня она случайно обнаружила заявления написанное чужой рукой от ее имени и подписанное другим человеком. Мы в шоке. Это вот таким значит образом создается статистика о количестве членов партии?
Пацталом!

Все неравнодушные к бобровой тематике срочно заводим боброблог!
Как и ожидалось, в упражнении нас просят улучшить программу извлечения квадратного корня, улучшив проверку на
выход из итерации. Исходная версия работает некорректно на малых и больших числах. Все тривиально.

def average(x, y)
  (x + y) / 2
end

def improve(guess, x)
  average(guess, (x / guess))
end

def sqrt_iter(guess, x, prev, eps)
  if (prev - guess).abs < eps
    guess
  else
    sqrt_iter(improve(guess, x), x, guess, eps)
  end
end

def sqrt(x, eps)
  sqrt_iter(1.0, x, x + 2 * eps, eps)
end


В 1.8 нам нужно посчитать кубичные корни. Понятно, что изменению подвергнется
только функция improve

def improve(guess, x)
  (x / guess ** 2 + 2 * guess) / 3
end
6-фев-2008 02:00 pm - Школьная задачка 2
Удалось сократить функцию до
def items(b)
  (1..(b-1)).inject([[b]]) {|s, i| s+items(b-i).collect{|j| ([i]+j).sort}}.sort
end


я почти влюблен в замыкания
6-фев-2008 12:22 am - Школьная задачка
Попался вопрос на форуме
Вроде задачка алгоритмически не сложна. Вопрос в компактности записи. У меня получилось так

def items(b)
  result = [[b]]
  (1..(b - 1)).each do |i|
    items(b - i).each do |j| 
      result.push(([i] + j).sort) 
    end
  end
  return result.sort
end
p items(5).uniq.reverse

[[5], [2, 3], [1, 4], [1, 2, 2], [1, 1, 3], [1, 1, 1, 2], [1, 1, 1, 1, 1]]


Душевно. Мне все больше нравится ruby тем, что можно просто делать простые вещи.
Причем я уверен, что то же самое можно сделать еще компактнее. Просто я еще не зняю всех фишек.
4-фев-2008 11:24 pm - SICP на Ruby
Собрался убивать двух зайцев одним махом.
1. Изучить функциональное программирование по книжке SICP. (Кто не знает, это фундаментальный курс программирования в MIT Structure and Interpretation of Computer Programs)
2. Изучить какой-нибудь динамический мультипарадигменный язычок для web. Колебался между ruby (ибо rails) и python (ибо django)

Итак буду читать sicp, а упражнение оттуда делать на ruby. (в sicp используется scheme)

Вобщем сначала ничего интересного, вводится префиксная запись, S-выражения и прочие особенности scheme, повторять которые на ruby никакого толку. А вот пункт 1.1.7 "Вычисление квадратного корня методом Ньютона" уже поинтереснее, причем мы ввели только арифметику, ветвление, сравнение и определение функции. Вот почти дословный перевод на ruby:

def average(x, y)
  (x + y) / 2
end

def good_enough(guess, x)
  ((guess ** 2 - x).abs < 0.001)
end

def improve(guess, x)
  average(guess, (x / guess))
end

def sqrt_iter(guess, x)
  if good_enough(guess, x)
    guess
  else
    sqrt_iter(improve(guess, x), x)
  end
end

def sqrt(x)
  sqrt_iter(1.0, x)
end

Итак рекурсия. А как еще сделаешь итерацию без циклов?
Нда, Ньютон, да не тот. Начальное приближение всегда 1.0 и проверка на завершение не блещет.
Ну да ладно не за то боремся, тем более авторы обещают потом исправиться. Посмотрим.

Что касаемо ruby, оказывается числовые константы это объекты с методами: -2.abs дает 2. А я пятнадцать минут функцию искал. Ну в общем даже прикольно. У чисел еще замечен такой забавный метод:

3.times do puts "обалдеть" end

обалдеть
обалдеть
обалдеть

так дело пойдет и никакие циклы не понадобятся.

Вобщем продолжение следует.

ЗЫ. Интересно а в ЖЖ есть подсветка синтаксиса? С разбега не нашел.
3-сент-2007 03:20 pm(без темы)
Крепитесь. Исследования показали, что вы - гном
Формула вашего успеха: pабота, работа, еще раз работа плюс индустриализация всей Мории минус балрог.
Пройти тест
3-сент-2007 03:18 pm(без темы)
Ну и самомнение! Вы - Локи
Ваш юмор уже давно стал черным, ваши подначки уже давно стоят у всех поперек горла, вы пользуетесь устойчивой непопулярностью в кругу своих родственников... Какая у вас, черт побери, забавная жизнь!
Пройти тест
3-сент-2007 03:16 pm(без темы)
Поздравляем!!! Решил(а) 11 из 12
An error has ocurred. Imposible result achieved. Please, make sure your brain is in the proper place. Вы не знаете аглийского не-бе-да!да-да-да! Учите Винни Пуха, желательно наизусть.
Пройти тест
30-авг-2007 01:28 pm(без темы)



Квентин Тарантино




Отношение к фильмам этого режиссёра со стороны общественности и критиков неоднозначно. Сценарии Тарантино отличаются чрезвычайно тщательной проработкой каждой сцены, а также наличием особой повествовательной интонации. Его фильмы называют эпатажными, культовыми и новаторскими одновременно. Кто-то считает их "макулатурой", а кто-то восхищается и причисляет к гениальным творениям.

Автора таких неоднозначных и неординарных фильмов можно назвать человеком, который стремится привлечь к себе внимание, предпочитает быть оригинальным вопреки социальным нормам и правилам. Выразить свою мысль любым способом, лишь бы она достигла людских душ, – вот главная цель. И именно этот энтузиазм "заражает" окружающих своей энергией и оставляет яркий след в рутинной жизни.



Пройти тест "Кто вы как режиссёр?"
This page was loaded янв 24 2017, 5:07 pm GMT.