powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Math.Random
25 сообщений из 40, страница 1 из 2
Math.Random
    #38919503
DimaKhodan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Переключился сейчас с Java на C# и заметил, что в классе Math нету такого метода как Random. Возможно я сейчас что-то не импортировал, или не туда смотрел, но можете подсказать, как генерировать случайные числа в c# и задавать им диапазон. Например от 1 до 10. или от -5 до +5.
...
Рейтинг: 0 / 0
Math.Random
    #38919505
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaKhodan,
Код: c#
1.
2.
var r = new Random();
int randomValue = r.Next(0, 100);
...
Рейтинг: 0 / 0
Math.Random
    #38919508
DimaKhodan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Axeleron, блин, таки то, что писало на msdn походу и есть единственный способ генерировать рандомно числа..(( жаль, на джаве это вроде удобнее. спасибо
...
Рейтинг: 0 / 0
Math.Random
    #38919512
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaKhodanжаль, на джаве это вроде удобнее. спасибо
А чем в C# неудобно? Все коротко и интуитивно понятно, на мой взгляд.
Можно еще больше укоротить до одной строки:
Код: c#
1.
var randomValue = new Random().Next(-5, 5);
...
Рейтинг: 0 / 0
Math.Random
    #38919522
Фотография Denis.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Axeleron,

этот код череват тем, что можно получить кучу дублей если поместить его в цикл
...
Рейтинг: 0 / 0
Math.Random
    #38919525
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis.этот код череват тем, что можно получить кучу дублей если поместить его в цикл
А зачем его помещать в цикл?
...
Рейтинг: 0 / 0
Math.Random
    #38919532
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis.,
Хотя задачи такой у ТСа не стояло, но Ваше предостережение обосновано. Достаточно вынести декларацию и инициализацию экземпляра класса Random за пределы цикла и никаких дублей не будет.
...
Рейтинг: 0 / 0
Math.Random
    #38919564
DimaKhodan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто может сказать, что не так с этим циклом?
Когда я его дебажу, то в консоль таки реально выводятся рандомные числа, когда я прохожу кодом степ бай степ.
Но когда просто запускаю его, без дебага мне всегда выбивает рандом 4 одинаковых цифры. например, 4 4 4 4 или 2 2 2 2, но не 4 разных. Плюс диапазон я указал от 0 до 1 . а мне тупо только одни нули выдает. когда изменил от 0 до 2. тупо единички начало выбивать. Что не так? :_(

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 static void Main(string[] args)
        {
            int[] finalPoint = new int[4];
            for (int i = 0; i < 4; i++)
            {
                finalPoint[i] = new Random().Next(0, 1 );
                Console.Write(finalPoint[i] + " ");
            }
            Console.ReadLine();
        }
...
Рейтинг: 0 / 0
Math.Random
    #38919567
DimaKhodan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Axeleron,

так, только что прочитал ваш ответ. не видел его. сорри. щас попробую
...
Рейтинг: 0 / 0
Math.Random
    #38919570
DimaKhodan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleronDenis.,
Хотя задачи такой у ТСа не стояло, но Ваше предостережение обосновано. Достаточно вынести декларацию и инициализацию экземпляра класса Random за пределы цикла и никаких дублей не будет.

сделал как вы написали, все работает. спасибо. надо запомнить этот нюанс.
...
Рейтинг: 0 / 0
Math.Random
    #38919638
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaKhodanПереключился сейчас с Java на C#
Зачем?
...
Рейтинг: 0 / 0
Math.Random
    #38919642
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaKhodan,

В подсказке к параметрам метода Next() указано, что нижняя граница включается, а верхняя исключается из диапазона, поэтому у вас от 0 до 0 "включительно" генерирует.

А по поводу того, что генерируется всегда одинаковая последовательность, я думаю, это связано с внутренней реализацией самого рандома, который рассчитывается на основе текущего времени, а т т.к. скорость выполнения высока, то получаем не совсем "рандом". А если добавить после рандома задержку System.Threading.Thread.Sleep(1);, то будет уже "рандом"...
...
Рейтинг: 0 / 0
Math.Random
    #38919647
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VSVLADDimaKhodan,

В подсказке к параметрам метода Next() указано, что нижняя граница включается, а верхняя исключается из диапазона, поэтому у вас от 0 до 0 "включительно" генерирует.

А по поводу того, что генерируется всегда одинаковая последовательность, я думаю, это связано с внутренней реализацией самого рандома, который рассчитывается на основе текущего времени, а т т.к. скорость выполнения высока, то получаем не совсем "рандом". А если добавить после рандома задержку System.Threading.Thread.Sleep(1);, то будет уже "рандом"...
Вот конструктор класса Random по умолчанию:
Код: c#
1.
2.
3.
      public Random() 
        : this(Environment.TickCount) {
      }



сама работа алгоритма метода Next не имеет привязки к времени. К времени привязана только инициализация семя.
...
Рейтинг: 0 / 0
Math.Random
    #38919649
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУDimaKhodanПереключился сейчас с Java на C#
Зачем?
Кто о чем, а вшивый о бане
...
Рейтинг: 0 / 0
Math.Random
    #38919694
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaKhodanAxeleronDenis.,
Хотя задачи такой у ТСа не стояло, но Ваше предостережение обосновано. Достаточно вынести декларацию и инициализацию экземпляра класса Random за пределы цикла и никаких дублей не будет.

сделал как вы написали, все работает. спасибо. надо запомнить этот нюанс.нюанс описан в МСДН. Роман его озвучил.
...
Рейтинг: 0 / 0
Math.Random
    #38919719
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУDimaKhodanПереключился сейчас с Java на C#
Зачем?

Шаблон потихонечку рвётся?

К нам тоже недавно джавист пришёл на сишарпы... И чёито спрашивается? Ведь на HH тыыыыщииии предложений для дджава с окладов как у начальника завода
...
Рейтинг: 0 / 0
Math.Random
    #38919721
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleronМСУпропущено...

Зачем?
Кто о чем, а вшивый о бане

Да ему просто мозг один авторитет перепрограммировал. Вроде крепкий мужик МСУ, однако тут сдал чёта. Ну да ладно, посмотрим что будет. Может иправда МС сдонет, а МСУ будет размахивать сединами и орать Я-же-гаварил!
...
Рейтинг: 0 / 0
Math.Random
    #38919732
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttК нам тоже недавно джавист пришёл на сишарпы... И чёито спрашивается? Ведь на HH тыыыыщииии предложений для дджава с окладов как у начальника завода
Ну плотность дураков на тысячу code monkey всё же не велика. Это как-раз тот случай :)

hVosttМожет иправда МС сдонет
Ты в этом сомневаешься?
...
Рейтинг: 0 / 0
Math.Random
    #38919747
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaKhodanAxeleron, блин, таки то, что писало на msdn походу и есть единственный способ генерировать рандомно числа..(( жаль, на джаве это вроде удобнее. спасибо

по ходу чего "писало на msdn"?

во как- "на джаве удобнее"

А может пробелмы в головах(ц), не?
...
Рейтинг: 0 / 0
Math.Random
    #38919756
DimaKhodan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
огосподи, как будто половина из вас из батинных яиц с ноутбуком в матку попало и первая фраза, которою вы сказали было hello world. к чему эти панты. учил джаву, сейчас перешел на с#, потому что есть возможность устроится на работу. тем более по ходу работы учишься быстрее, чем если сидеть на парах или дома и читать одну теорию.

само собой, на java удобнее. как минимум все сводится до вызова метода, а не создания нового экземпляра, за которым еще и надо следить. а если кому-то такой вариант удобнее, ну и флаг в руки, я говорю, так как по мне лучше.

и последнее, я попросил сказать, варианты вызова рандома, а не кидануть здесь парочку пантовых фраз о том какие вы классные кодеры, а кругом одни манки кодеры. потому, что в этом случае вы больше похоже на обезьян ,которым говоришь одно, а они тебе 25е, видимо вы из-за многолетнего опыта написания кода, разучились читать обычный текст.
...
Рейтинг: 0 / 0
Math.Random
    #38919784
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaKhodanогосподи, как будто половина из вас из батинных яиц с ноутбуком в матку попало и первая фраза, которою вы сказали было hello world. к чему эти панты. учил джаву, сейчас перешел на с#, потому что есть возможность устроится на работу. тем более по ходу работы учишься быстрее, чем если сидеть на парах или дома и читать одну теорию .

само собой, на java удобнее. как минимум все сводится до вызова метода, а не создания нового экземпляра, за которым еще и надо следить. а если кому-то такой вариант удобнее, ну и флаг в руки, я говорю, так как по мне лучше.

и последнее, я попросил сказать, варианты вызова рандома, а не кидануть здесь парочку пантовых фраз о том какие вы классные кодеры, а кругом одни манки кодеры. потому, что в этом случае вы больше похоже на обезьян ,которым говоришь одно, а они тебе 25е, видимо вы из-за многолетнего опыта написания кода, разучились читать обычный текст.

лайкнул, сижу на парах, как король на именинах (ц)

И по java - 100%! прогрессировать надо java->javascript.
Там можно не заморачиваться со всякими извращениями ;-)
...
Рейтинг: 0 / 0
Math.Random
    #38919796
DimaKhodan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Winnipuh, ну никто и не говорил, что сильно парится из-за извращений и тем более не говорил, что это может стать преградой для дальнейшего изучения языка.
...
Рейтинг: 0 / 0
Math.Random
    #38919827
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин вроде очевидно что знать J и C# лучше, чем чтото одно. Но нет, надо устроить срач
...
Рейтинг: 0 / 0
Math.Random
    #38919908
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ого! А студень отжег так отжег Прям стало страшно от его свирепства ))
...
Рейтинг: 0 / 0
Math.Random
    #38920252
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PallarisБлин вроде очевидно что знать J и C# лучше, чем чтото одно. Но нет, надо устроить срач
Нет, не особо лучше - если в плане поиска работы.
Есть такой момент - как оверквалификация.

Я один раз попался. Теперь пишу в резюме только профильно.

Когда осваивал джаву - тоже сидел и возмущался глупыми вопросами - зачем столько календарей и дат? Почему эклипса не сохраняет файл перед "компиляцией"... ?
Потом вернулся на шапр - и тут у меря был час отмщения - меня придали в группу джаваистов, проэкт которых закрыли - и их пересадили на визуал студию.
:-)

Отвечал на их глупые вопросы...
:-)
...
Рейтинг: 0 / 0
25 сообщений из 40, страница 1 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Math.Random
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]