Эксперт .NET
4430 / 2090 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
1

Как сгенерировать случайное число типа я double имея на входе 2 числа типа double - минимальное и максимальное

09.07.2012, 00:05. Показов 3199. Ответов 2
Метки нет (Все метки)

Например:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    public class ExtendedRandom : Random
    {
        public ExtendedRandom()
            : base()
        {
        }
 
        public ExtendedRandom(int value)
            : base(value)
        {
        }
 
        public double NextDouble(double min, double max)
        {
            double result = NextDouble(); //Чтоб компилилось
            //Как-то генерируем
            return result;
        }
    }
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
    class Program
    {
        static void Main(string[] args)
        {
            double min = 8.3d;
            double max = 8.74d;
            ExtendedRandom random = new ExtendedRandom();
            double result = random.NextDouble(min, max);
            Console.WriteLine("result = {0}", result);
 
            Console.ReadKey();
        }
    }
И желательно генерировать так: берём число у которого большее кол-во значений отличных от нуля после запятой и у числа результата генерируем именно такое кол-во случайных значений, а остально будут нули.

Если:
A = 0.98
B = 2.1234
То результат будет:
С = 1.0098

Или

Если:
A = 0.899889
B = 89.0
То результат будет:
С = 43.585684

Или

Если:
A = 0.8
B = 7.08
То результат будет:
С = 6.09

Как сделать такой рандомизатор, подскажите, что-то не приходит ничего в голову.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.07.2012, 00:05
Ответы с готовыми решениями:

Минимальное изменение(шаг) числа типа double
Здравствуйте. Как можно узнать минимальное изменение(шаг) числа типа double? Например, есть число...

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

Обеспечить операторы преобразования матрицы к типу double[] и наоборот - от типа double[] к матрице
Здравствуйте. Выполняю лабораторную работу, по заданию которой необходимо создать класс "Матрица"...

Генерация числа типа double
Прет всем у меня такой вопрос: Как сгенерировать число типа double что бы после запитой была...

2
298 / 256 / 57
Регистрация: 11.06.2012
Сообщений: 1,557
09.07.2012, 00:50 2
2 способа - прочитай тут про методы http://msdn.microsoft.com/ru-r... andom.aspx NextDouble() и Sample(). Один из них должен помочь.
Второй способ - малость криво, и возможно некрасиво но все же. Узнаешь число с наибольшей длинной, генерируешь (длина-1) целых чисел от 1 до 10 , загоняешь их в строку, не забыв про запятую на нужном месте, с определением этого места слишком больших проблем не будет, и получаешь из этого строки число. (код было писать лень)
1
266 / 256 / 43
Регистрация: 18.03.2012
Сообщений: 506
09.07.2012, 03:21 3
Обычный рандом меж двух чисел делается без проблем:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Program
    {
        static void Main()
        {
            var rand = new Random();
 
            Console.WriteLine("Just random:");
            for (int i = 0; i < 10; i++)
            {
                var min = Math.Exp(i);
                var max = Math.Exp(2 * i);
                Console.WriteLine("Between {0:f} and {1:f}: {2:f}", min, max, rand.NextDouble(min, max));
            }
        }
    }
 
    static class MyRandom
    {
        public static double NextDouble(this Random rand, double min, double max)
        {
            if (min > max) throw new ArgumentException("'min' cannot be greater than 'max'.");
            return (rand.NextDouble() * (max - min) + min);
        }
    }
Что касается рандома с нужным количество цифр - скорее всего придется активно работать с парсингом строк. Напишу днем, когда соображать буду лучше.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.07.2012, 03:21
Помогаю со студенческими работами здесь

Вывод числа типа double в консоли
Всем добрый день. Бьюсь головой уже об стол в припадке. Готов признаться во всех смертных грехах...

Неправильно сравнивает числа типа double
Помогите пожалуйста!!!!!неправильно сравнивает числа типа double!!!что не так? if (p == 0) ...

Сравнение массива типа string с числом типа double
Добрый день! Проблема заключается в том,что нужно найти индекс максимального размера галактики....

Неправильно отнимаются числа типа float(double)
Сразу говорю, что перезайти в решение - не вариант. Итак, у меня есть малюсенькая нейронная...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru