|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
Опции темы | Опции просмотра |
18.11.2014, 17:01 | #1 (permalink) |
Новичок
Регистрация: 18.11.2014
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Книга Хорстманна "Scala для нетерпеливых"
sqrt при import scala.math._ то вызов сработает? Ведь класс метода всё-таки не указан. При этом на метод probablePrime класса BigInt ругается, даже если напрямую указать import scala.math.BigInt Притом автор в упражнениях требует в первой же главе, чтобы добились выполнения probablePrime без префикса. |
18.11.2014, 17:01 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Советую вам посмотреть уже обсуждаемые аналогичные темы На Конкурс "13 друзей моддинга" Кейс в стиле "Русская глубинка" от George Smith Гази Эммеджи эфенди. Проект "Русский стимпанк". Серия "Враги" Капрал янки Джебедайя Сэмуел. Проект "Русский стимпанк". Серия "Враги" |
18.11.2014, 21:57 | #3 (permalink) |
Новичок
Регистрация: 18.11.2014
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Это два разных вопроса.
1. Когда я делаю import scala.math._ то вызов sqrt работает. То есть, методы соответствующего класса вызываются. В принципе, так, наверное, должно быть, хотя с точки зрения Явы необычно. 2. Хорстманн дал задание сделать такой импорт, чтобы probablePrime( 100, Random ) работала бы без префиксов. Для рандома делается хорошо, можно написать import scala.util.Random и всё хорошо. Для probablePrime не получается ни в какую, ни через импорт всего пакета math, ни через импорт конкретного класса. Что особенно странно на фоне выполнения sqrt как из пушки. Может быть, можете подсказать, что нужно сделать, чтобы выполнить задание Хорстманна ? |
18.11.2014, 22:32 | #4 (permalink) |
VIP user
Регистрация: 10.03.2011
Сообщений: 765
Записей в дневнике: 1
Сказал(а) спасибо: 10
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 3453
|
def isProbablePrime(certainty: Int): Boolean
Возвращает true, если этот BigInt, вероятно, главный. ложный, если это - определенно составной объект. Это мера неопределенности, которую вызывающая сторона готова терпеть: если вызов возвращает true вероятность, что этот BigInt главный, превышает (1 - 1/2 ^ уверенность). Время выполнения этого метода пропорционально значению этого параметра. А вообще для скалы, есть хороший сайт Scala Standard Library API (Scaladoc) 2.10.3 Слева сверху в поиске вводишь команду и она пишет тебе что за команда,тип, и т.п. и т.д. |
19.11.2014, 00:00 | #5 (permalink) |
Новичок
Регистрация: 18.11.2014
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Совершенно верно. Именно там, введя BigInt, я вижу его в пакете scala.math и вижу у объекта функцию
def probablePrime(bitLength: Int, rnd: Random): BigInt которую никак не могу вызвать без префикса, как того хочет Хортсманн. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
19.11.2014, 15:52 | #6 (permalink) |
Новичок
Регистрация: 18.11.2014
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
По поводу sqrt вопрос снимается: в Скале есть функции пакетов. Я принимался как-то раньше за Скалу и успел забыть
А вот с probablePrime по-прежнему непонятно |
08.12.2014, 15:02 | #7 (permalink) |
Новичок
Регистрация: 18.11.2014
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
С probablePrime всё понятно. В Скале есть импорт членов классов. Чтобы избежать наименования класса, надо импортировать не класс, а его члены, т.е. импортировать BigInt._
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|