Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 47
1

Генератор

24.09.2013, 01:53. Показов 2189. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пишу лабу
нужно написать генератор псевдослучайных чисел методом Фон Неймана

х0 = 0.2152, возводится в квадрат:

( х0 )2 = 0.04631104, берется “среднее” число:

х1 = 0.6311 и снова возводится в квадрат:

( х1 )2 = 0.39828721,

х2 = 0.8287 и т. д.
вот как выбрать среднее число, как реализовать?)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.09.2013, 01:53
Ответы с готовыми решениями:

Java - генератор микросервисов
День добрый, на работе поступил заказ: сваять на ява генератор микросервисов. Шаблонный...

Генератор (сложных) SQL-запросов
Привет! Есть приложение, которое получает данные из базы. Вариантов запросов много, запросы...

Генератор неповторяющихся случайных чисел
Есть коллекция стринг, 30 элементов. Нужно чтоб они не повторялись, но выводились все. Как это...

Нужен генератор случайных чисел для мобильного
Нужно приложение для мобильника (не Android) , которое принимает целое положительное число N,...

4
31 / 31 / 6
Регистрация: 11.07.2013
Сообщений: 241
24.09.2013, 04:30 2
написал маленький класс, пришлось использовать BigDecimal

Не по теме:

накой этот double вобще нужен?



Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import java.math.BigDecimal;
 
 
public class Randomizer {
 
    private static double start; // делаем стартовое число static чтобы оно было общим на весь класс(для всех обьектов)
    
    public Randomizer() // по дефолту стартовое число как у вас
    {
        start = 0.2152;     
    }
    
    public Randomizer(double start)
    {
        Randomizer.start = start;
    }
    
    public double Next()
    {
        double result; 
        
        BigDecimal bd = new BigDecimal(start);  // переменную старт обернули класом BigDecimalдля повышения точности при вычислениях 
        String s = String.valueOf(bd.multiply(bd)); //возвели в квадрат , превратили в строку
        int index = (s.length() - 2) / 2;
        
        String s1 = s.substring(index, index + 4);      // вырезали из строки 4 нужных символа
        
        result = Double.parseDouble(s1) / Math.pow(10, 4); 
        
        start = result; // переопределили стартовое число
        return result;  
    }
}
Java
1
2
3
4
5
6
7
8
9
10
public static void main(String[] args) throws InterruptedException {
        
    Randomizer rnd = new Randomizer();
    
    for(int i = 0; i < 100500; i++)
    {
        System.out.println("-------");
        System.out.println(rnd.Next());
        System.out.println("-------");
    }
0
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 47
24.09.2013, 12:22  [ТС] 3
рандом там вообще не должен использоваться, числа получаются от исходного числа, как выбрать из числа определённое количество цифр?
0
352 / 162 / 20
Регистрация: 22.12.2011
Сообщений: 352
24.09.2013, 12:41 4
Rabbit40rt, а где тут используется рандом?
1
31 / 31 / 6
Регистрация: 11.07.2013
Сообщений: 241
24.09.2013, 18:50 5
единственное может кто подскажет как вырезать 'среднее' число за меньшее число строк кода/ затрат памяти

Добавлено через 1 минуту
Цитата Сообщение от Rabbit40rt Посмотреть сообщение
рандом там вообще не должен использоваться, числа получаются от исходного числа, как выбрать из числа определённое количество цифр?

Не по теме:

:rofl: а закоментировал дальше некуда



Добавлено через 29 минут
Rabbit40rt, кстати, вопросы вам.

1)На каком вы курсе?
2)Почему вам нужен генератор именно на джаве?

//2) Дело в том, что в универе в моем городе джава учится проходится на 4-том курсе факультета связанного с программированием(ну а до этого С С++ Делфи), но вроде как для 4-го курса такая лаба как говорил Моргунов "Это не серьйозно!"
Или ЯП все равно какой?

Не по теме:

сам я там не учился



Добавлено через 1 час 5 минут
Посмотрел я вычисления и я в ступоре

Java
1
2
BigDecimal bd = new BigDecimal(0.3333d);
    System.out.print(bd.multiply(bd));

0.111088889999999990112602432645872106057609114564789051901979571716251593560542 687555425800383090972900390625

а 0.3333 * 0.3333 = 0.11108889

Но на умножении двух double тоже иногда не дает правильный результат

Не по теме:

мдаа

0
24.09.2013, 18:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.09.2013, 18:50
Помогаю со студенческими работами здесь

Генератор паролей
Я как и большинство в этой ветке учу Java (самостоятельно), долго не хотел писать, думал найду что...

Конгруэнтный генератор
Помогите. Проблема в следующем: нужно написать программу, которая генерирует псевдослучайную...

Генератор чисел
Доброе Утро! Помогите Пожалуйста переделать код, чтобы он генернировал целые числа в диапозоне...

Генератор псевдослучайных последовательностей
Создаю еще одну тему т.к в этом разделе онлайн больше. Генератор псевдослучайных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru