170 похожих чатов

Господа. Я новичёк. Прошу прощения если тут для супер гуру

сообщество, а я тут со своими глупыми вопросами новичков.

Сейчас разбираюсь с рандомом и тут случился вопрос.

Я понимаю как написать рандом от 1 до 10
''' 1 + rang() % 10 '''

Но я хочу сделать рандом от 3 до 9
Куда писать какое значение ?
Ибо
''' 3 + rang() % 9 ''' будет выдавать от 3 до 11

55 ответов

4 просмотра

@Misketik, попробуй уменьшить девятку так, чтобы в сумме выдавало не 11, а 9

Не так много вариантов. Какие ты уже перепробовал?

А ещё лучше ознакомиться с инструментами C++ для генерации случайных чисел

Ofee Oficsu
А ещё лучше ознакомиться с инструментами C++ для г...

хз мне было гораздо сложнее пользоваться этим(да ладно и сейчас неудобнее пользоваться), чем rand

Егор (Дима)
для новичка и rang хватит

Зато, вместо магии со сложением и взятиями остатка мы получаем однозначно задающий границы код: std::uniform_int_distribution<> distrib(1, 6); И читаем его декларативно в рамках понятных мозгу представлений, а не разворачиваем императивный код в эти же представления

Ofee Oficsu
Зато, вместо магии со сложением и взятиями остатка...

и дополнительно написать 2 непонятных строки

Егор (Дима)
и дополнительно написать 2 непонятных строки

Ну, таков уж порог входа в нормальный, современный C++, вопрос того, нужно ли это — оставлю на потом

Параметрическое задание открытого интервала [a, b] - это функция f(t) = a + (b - a)*t, где t in [0, 1], f(0) = a f(1) = b Сможешь теперь составить функцию для интервала [3, 9]?

Ofee Oficsu
Зато, вместо магии со сложением и взятиями остатка...

distri...(сложное слово) и прочие штуки это вообще уже неплохо бы математику знать для таких понятий, так что рандом в С++ это явно не для новичков делалось. Для научных работ разве что

3 + rand()%6

Pepe 🐸
3 + rand()%6

а бот отправляет потом эти сообщения конечному получателю или ты ответил в пустоту?

Kelbon
а бот отправляет потом эти сообщения конечному пол...

хз, я вообще по диагонали прочитал. Это бот?)

Ofee Oficsu
@Misketik, попробуй уменьшить девятку так, чтобы в...

7 🤔 Теперь вообще перестал понимать.

Misket
7 🤔 Теперь вообще перестал понимать.

повторю вопрос, если % остаток от деления, то каким может быть значение x = rand()%N

Anatoly Shirokov
Параметрическое задание открытого интервала [a, b]...

@Misketik а вот ответ, на который даже не среагировали.

Kelbon
повторю вопрос, если % остаток от деления, то каки...

Видимо я в оконцове запутался и начинаю не понимать. То диапазон рандома что мне нужен был - это от 3 до 9 Получилось вот что: ''' 3 + rand() % 7 '''

Anatoly Shirokov
@Misketik а вот ответ, на который даже не среагиро...

Я новичёк. Я его прочел трижды. И я пока не понял его.

Misket
Видимо я в оконцове запутался и начинаю не понимат...

Задам вопрос. Какое минимальное и максимальное число возможно для rand() % 7? А если к минимальному и максимальному прибавить 3, как изменятся числа?

Kelbon
повторю вопрос, если % остаток от деления, то каки...

ну тыже близок к разгадке. каким может быть ОСТАТОК от деления на некое число?

Ofee Oficsu
Задам вопрос. Какое минимальное и максимальное чис...

@Misketik, а для rang() % 9? А что будет, если снова прибавить 3 к обоим числам?

Misket
Видимо я в оконцове запутался и начинаю не понимат...

программирование хорошо тем, что можно очень легко проверить. Запустить цикл да посмотреть что выведет твоё выражение

Kelbon
программирование хорошо тем, что можно очень легко...

На данном этапе полезнее самому выполнить работу цикла на бумаге

Misket
Нет. Всё. В край затупил.

https://ru.wikipedia.org/wiki/Деление_с_остатком

Misket
Нет. Всё. В край затупил.

подсказка, остаток от деления на N не может быть больше или равен N

Stas Koynov
https://ru.wikipedia.org/wiki/Деление_с_остатком

Я понимаю про деление с остатком. Эдакий 10 % 3 = 1

Misket
Нет. Всё. В край затупил.

Вы правильно там выше ответили, насколько я видел. Нижнюю границу диапазона Вы задаете константой буквально. Теперь: rand() возвращает некоторое неотрицательное целое (т.е. в т.ч. нуль). Нам нужно "ужать" его до диапазона от нуля до некоторого X. Этого мы достигаем получением остатка от целочисленного деления этого возвращаемого значения на X, который как раз окажется в диапазоне [0, X). Иллюстрирую: 0 % 3 = 0, 1 % 3 = 1, 2 % 3 = 2, 3 % 3 = 0, 4 % 3 = 1... Как Вы можете видеть, эта последовательность из повторяющихся значений, сгруппированных по X (в нашем случае - тройками), что нам и нужно. Теперь остается лишь прибавить это "ужатое" значение к нижней границе, чтобы получить результат в интервале [lowerBound, upperBound). Рекомендация: старайтесь находить экстремумы для подфункций алгоритма, чтобы прикинуть его corner-case'ы. Так его понимание может стать проще.

Misket
Я новичёк. Я его прочел трижды. И я пока не понял ...

t в данном примере rand()/RAND_MAX, a - начало интервала, в твоем случае 3, b - конец интервала (9), получаем: 3 + (9 - 3)*(rand()/RAND_MAX) = 3 + 6*(rand()/RAND_MAX)

Anatoly Shirokov
t в данном примере rand()/RAND_MAX, a - начало инт...

вот без шуток объяснения неочень лёгкие выходят

Kelbon
вот без шуток объяснения неочень лёгкие выходят

его упростили. я задал вопрос про x = M%N когда будет ответ мы продолжим. а пока он не готов.

Anatoly Shirokov
t в данном примере rand()/RAND_MAX, a - начало инт...

Вообще в хлам мозг превратился. Я не говорю, что вы плохой или все те кто тут пытается мне помочь. Я благодарен что тратите время на меня. Но по мне это выглядит мозгодробильно для новичка.

Misket
Вообще в хлам мозг превратился. Я не говорю, что в...

Проблема не в непонимании с++, а в непонимании математики

Stas Koynov
его упростили. я задал вопрос про x = M%N когда бу...

Да. Не готов. Потому как не понимаю при чем тут буквы. Цифры же нужны. 😞 Как может равна быть чему то х если цифр нет.

Misket
Да. Не готов. Потому как не понимаю при чем тут бу...

Звучит как фраза ребёнка, который перешёл в 5 класс и увидел уравнения))

Misket
Да. Не готов. Потому как не понимаю при чем тут бу...

естественно если даны буквы, то ответ в цифрах не дать... Но можно дать ответ в общем виде...

Misket
Да. Не готов. Потому как не понимаю при чем тут бу...

ты типа шутиш? какие буквы цифры. это уравнение. я прошу его мне решить. тыж понимаешь что если x = 1 +1 , то x == 2? да понимаешь вот я прошу тебя решить это в символах зная что x = M%N. я говорю что M и N целые числа. дай мне диапазон значений x в виде не равенства. это 8ой класс школы. Вики что есть остаток отделения тебе дали. Тут ++ нет. простая арифметика. о чем тут вообще говорить. символы-цифры... уже троллинг какой то. если ты работал на питоне щас в ++ пришел. уже язык не поворачивается тебя назвать новичком. тут нет ++ от слов совсем. тоже самое на питоне напиши. вопрос такой же. каким будет диапазон x.

Stas Koynov
ты типа шутиш? какие буквы цифры. это уравнение. я...

Нет не шучу. Я все это время не понимал что ты хотел что бы я на примере твоей формулы подставил свои значения.

Kelbon
откуда инфа про питон программиста

Начинал изучать питон, джаву.

Anatoly Shirokov
screenshot

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

Misket
Вообще в хлам мозг превратился. Я не говорю, что в...

Сначала находим фракцию от 0 до 1. Потом по этой фракции делаем выборку в переделах разницы между b и a. Затем сдвигаем число на основу(а)

Kelbon
ну это другой способ скажем так...

Фракция находится по (float)rand() / RAND_MAX

Похожие вопросы

Обсуждают сегодня

А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
почому оно не работает?
Vi Chapmann Chapmann
19
Так а кто может спарсить всех участников чата? Идишники
Magic
18
Есть вопрос: допустим есть железка с каким-то интерфейсом(допустим usb), но как по этому интерфейсу железкой управлять неизвестно, прог нету, а управлять очень хочется надо. К...
Mixail Frolov
15
а как ловят такое ghci> res <- getPos2 urlt 0 (alist !! 0) 200 ghci> res SearchAtom (Search "www.google.com" "/search?q=" "Haskell") "haskell.org" (SearchTS [(2024-05-06 07:...
Fedor
14
короче сгенерила мне эта штука код на ассемблере: struc string val { common local .value dq .value .value: if ~val eq db val end if db 0 } fo...
Vi Chapmann Chapmann
12
Карта сайта