Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на Java / JavaScript


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты по данной тематике

Асмик Гаряка
Статус: Советник
Рейтинг: 11013
∙ повысить рейтинг »
Коцюрбенко Алексей aka Жерар
Статус: Советник
Рейтинг: 4035
∙ повысить рейтинг »
CradleA
Статус: Бакалавр
Рейтинг: 2072
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / Java/JavaScript

Номер выпуска:713
Дата выхода:27.02.2013, 12:00
Администратор рассылки:Коцюрбенко Алексей aka Жерар (Советник)
Подписчиков / экспертов:83 / 38
Вопросов / ответов:3 / 5

Консультация # 109648: Здравствуйте! Подскажите, пожалуйста, как можно реализовать генерацию случайного простого числа на javascript. Еще раз обращаю внимание, что число должно быть именно простым. Спасибо....


Консультация # 68485: Посмотрите, скрипт вроде правильный, но когда наступает 22 часа, он вообще нисего не пишет......
Консультация # 11231: Как на Java Script записать Cookie. Здравствуйте, эксперты Интересует возможность работы с Cookie на Java Script. Хотелось бы осуществить такую вещь. На сайте (сайт на narod.ru) есть несколько разделов: Раздел1, Раздел2, Раздел3. В каждом разделе есть несколько веб-страниц: Раздел1Страница1, Раздел1Страница2, Раздел1Страница3, и т. д. дл...

Консультация # 109648:

Здравствуйте!

Подскажите, пожалуйста, как можно реализовать генерацию случайного простого числа на javascript. Еще раз обращаю внимание, что число должно быть именно простым.

Спасибо.

Дата отправки: 16.11.2007, 08:40
Вопрос задал: Konstant
Всего ответов: 3
Страница онлайн-консультации »


Консультирует Stals:

Насколько я знаю, такой формулы нет, есть приближенные, но они не гарантируют 100% результат.
Придется создать массив простых чисел, а потом случайным образом выбрать один из его элементов. Алгоритм создания такого массива следущий:
Пробегая диапазон чисел от 1 до [сколько надо], добавляем текущее число в массив, если в этом массиве нет чисел на которое делится текущее число.
В конце концов получаем нужный набор чисел...
Чтобы не жрать много ресурсов, можно сгенерироать массив и забить его потом, как константу, чтобы не тратиться на его создание, т.е для быстрого выполнения скрипта...
Надеюсь с реализаацией проблем не будет...

Консультировал: Stals
Дата отправки: 16.11.2007, 11:12
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Gh0stik (Академик):

Здравствуйте, Konstant!

Мягко говоря предыдущий ответ содержит полный бред..., поскольку существует общеизвесный алгоритм проверки числа является ли оно простым или нет!

Достаточно сгенерировать число х, и достаточно посчитать все его делители начиная с 2 и до самого числа х, если таких делителей все ОДИН, то мы говорим что это простое число. А если воспользоватся алгеброй, то можно еще ускорить данный поцесс и считать делители от 2 до √х.

В приложении полностью страница со скриптом, при загрузке страницы на экран выводится произволльное простое число от 1 до 1000.

А вот код алгоритма приведенного выше.
<script>
function getRandom() {  return Math.round(1000*Math.random());}

function prostoe()
{
t=true;
while (t)
{
k=0;
x=getRandom();
for (var i = 2; i <= Math.sqrt(x); i++)
{
if (x%i == 0) {k++;}
}
if (k == 0) {t=false;}
}
document.write(x);
}
</script>


Good Luck!!!

Приложение:

Консультировал: Gh0stik (Академик)
Дата отправки: 16.11.2007, 11:58
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Иоффе Мэир Вэлевич:

Здравствуйте, Konstant!

Я бы, наверное, назвал свой метод "ленивым", так как в нём не происходит реальной генерации простых, да ещё и случаных, чисел.

Приступим.

Создаём .js файл с массивом содержащим простые числа (список, довольно не маленький, можно нарыть в интернете. на той же википедии, скажем).

а потом просто генерирум случайное число от ноля до "длина массива минус один"
и вытаскиваем простое число из полученого индекса.

чтобы получить случайное число в джаваскрипт можно использовать вот этот код:

var primeArrayLength = 100; // допустим, что у нас в массиве 100 простых чисел
var randomnumber=Math.floor(Math.random()*primeArrayLength);

Если нужно, чтобы последовательность "генерируемых случайных" простых чисел не содержала повторений, что может произойти, то делаем так.

по получению индекса массива берём содержимое ячейки и переносим в конец массива. Напирмер:

Имеем массив: 2,3,5,7,11,13,17,19,23
получаем индекс 4
запоминаем число 11. сдвигаем массив и дописываем число 11 в конец.
Теперь массив выглядит вот так: 2,3,5,7,13,17,19,23,11

Остальсь уменьшить переменную содержащую длину массива на 1.

primeArrayLength--;

и можно снова генерировать индекс не боясь, что снова выпадет индекс 4.
потому что даже если и выпадет, то
1) там уже совершенно иное число, и
2) число 11 тоже не выпадет так как случайный индекс не будет равнятся индексу последнего члена массива после того, как мы уменьшили переменную на 1.

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

Таким образом случайность "генерирумых" простых чисел зависит от длины Вашего массива.

Удачи.
Надеюсь, что не сильно загрузил :-))

Консультировал: Иоффе Мэир Вэлевич
Дата отправки: 16.11.2007, 13:29
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 68485:

Посмотрите, скрипт вроде правильный, но когда наступает 22 часа, он вообще нисего не пишет...

Дата отправки: 25.12.2006, 08:58
Вопрос задал: Angel7
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Grigory:

Здравствуйте, Angel7!
В вашем условии для "Доброй ночи!", Вы хотите, чтобы значение было больше или равно 22 и меньше или равно 5 одновременно, поэтому-то у вас ничего и не выводится, когда наступает 10 часов вечера.
Исправьте ваш скрипт вот так:
if (currentTime.getHours() >= 22)
document.write("Доброй ночи");
if (currentTime.getHours() <= 5 )
document.write("Доброй ночи");

тогда все должно будет работать.

Удачи!

Григорий

Консультировал: Grigory
Дата отправки: 25.12.2006, 12:18
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 11231:

Как на Java Script записать Cookie.
Здравствуйте, эксперты
Интересует возможность работы с Cookie на Java Script. Хотелось бы осуществить такую вещь.
На сайте (сайт на narod.ru) есть несколько разделов: Раздел1, Раздел2, Раздел3. В каждом разделе есть несколько веб-страниц: Раздел1Страница1, Раздел1Страница2, Раздел1Страница3, и т. д. для каждого раздела. Необходимо запомнить на какой странице был пользователь перед выходом с сайта и потом когда пользователь снова вернется на сайт показать ему эту страницу, так как будто он с него не уходил. Как это можно сделать.

Дата отправки: 01.01.2004, 00:01
Вопрос задал: Дмитрий
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Licvidator:

Доброе время суток, Дмитрий!
MAN http://www.citforum.ru/internet/html/cookie.shtml.

Консультировал: Licvidator
Дата отправки: 01.01.2004, 00:01
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка  |  восстановить логин/пароль

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!



В избранное