Программирование на языке Ruby
Шрифт:
И, наконец, в последнем варианте предполагается, что пары (x, у) хранятся в хэше. Код основан на предыдущем примере:
5.28. Генерирование случайных чисел
Если вас устраивают псевдослучайные числа, вам повезло. Именно они предоставляются в большинстве языков, включая и Ruby.
Метод
Если при вызове задается целочисленный параметр
Чтобы «затравить» генератор случайных чисел (задать начальное значение — seed), применяется метод
5.29. Кэширование функций с помощью метода memoize
Пусть имеется вычислительно сложная математическая функция, которую нужно многократно вызывать по ходу работы программы. Если быстродействие критично и при этом можно пожертвовать небольшим количеством памяти, то имеет смысл сохранить результаты вычисления функции в таблице и обращаться к ней во время выполнения. (Тут неявно предполагается, что функция будет часто вызываться с одними и теми же параметрами, то есть получается, что мы «выбрасываем» результат дорогостоящего вычисления и снова повторяем его позже.) Такая техника иногда называется запоминанием (memoizing), отсюда и название библиотеки
Эта библиотека не входит в стандартный дистрибутив, поэтому придется установить ее вручную.
В следующем примере демонстрируется сложная функция
Обратите внимание, что можно задать имя файла. Это может несколько замедлить работу, зато экономится память, и таким образом мы можем сохранить запомненные результаты и воспользоваться ими при следующих вызовах программы.
В ходе неформального тестирования мы вызывали функцию 50000 раз в цикле. Оказалось, что
Отметим еще, что библиотека
5.30. Заключение
В этой главе были рассмотрены различные представления чисел, в том числе целых (в разных системах счисления) и с плавающей точкой. Мы видели, какие трудности возникают при работе с числами с плавающей точкой и как можно частично обойти эти трудности, применяя рациональные числа. Мы познакомились с явными и неявными преобразованиями, а также с приведениями типов.
Также мы изучили разнообразные способы манипулирования числами, векторами и матрицами. Был приведен обзор стандартных библиотек, полезных для численного анализа, в частности библиотеки
Барон Бранд Берс. Том 1
1. Бранд Берс
Проза:
магический реализм
рейтинг книги
Шайтан Иван 5
5. Шайтан Иван
Фантастика:
попаданцы
альтернативная история
историческое фэнтези
рейтинг книги
Святая Русь
7. Государи московские
Научно-образовательная:
история
рейтинг книги
Неучтенный элемент. Том 10
10. Антимаг. Вне системы
Фантастика:
фэнтези
рейтинг книги
Избранное
Старинная литература:
европейская старинная литература
рейтинг книги
Ермак. Регент
10. Ермак
Фантастика:
попаданцы
альтернативная история
рейтинг книги
Я снова князь. Книга XXIII
23. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
рейтинг книги
Я уже царь. Книга XXIX
29. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
рейтинг книги
Умри завтра
5. Рой Грейс
Детективы:
триллеры
рейтинг книги
Избранное
Фантастика:
альтернативная история
рейтинг книги
Газлайтер. Том 26
26. История Телепата
Фантастика:
боевая фантастика
попаданцы
аниме
рейтинг книги
Посольство
Детективы:
политические детективы
рейтинг книги
Воин-Врач
1. Воин-Врач
Фантастика:
попаданцы
альтернативная история
историческое фэнтези
рейтинг книги
Туманы Авалона
Шедевры фантастики
Фантастика:
фэнтези
альтернативная история
рейтинг книги