🐙 Antony
Что с повторимостью последовательности? Что с предсказуемостью последовательности?
🐙 Antony
Что с производительностью?
Stanislav
да вроде они все так работают) даже сишный ранд
🐙 Antony
Мерсен твистер - тяжёлый, его сложно инициализировать с помощью обычного seed;
Будет один стейт на все потоки, или в каждом потоке свой стейт? Какое изначальное значение?
Stanislav
да я видел
RattenKong 🦧🐀🦍️
Внезапно, никто не идкт на яндексоивент?
🐙 Antony
Я могу съекономить время: в джаве несколько классов для рандома (читай С++ных RBG), в ней нужно создать RBG чтобы генерировать число. RBG варьируются по секурности и дефолтному значению и проч параметрам...
Тоесть выглядит очень похоже на то, что сейчас в С++
🐙 Antony
отменяет это тем, что в разных проектах абсолютно разные требования и нет возможности сделать rand(min, max) который бы подходил более 66% пользователей
Berkus
что дефолтный рандом ансейф и его бездумно нельзя использовать
Berkus
srand(time(0)); это вообще секьюрити дыра
Berkus
это ты горе-программистам скажи
🐙 Antony
Плохое решение - не значит что получилось
Berkus
в этом случае да
Berkus
ну сделай свой враппер тогда, 2 строчки
Berkus
если понимаешь - уже пол дела сделано, а давать топор чувакам которые не понимают и еще и ногу удобно перед ними подкладывать - не оч
Berkus
доку никто не будет читать
🐙 Antony
Давай я пару примеров приведу, где нужны абсолютно разные подходы:
* бенчмарки - нужна повторимость результатов, при том между платформами и ОС
* сервера игровой механики - нужна производительность, средняя стойкость и можно немного потратить время на старте. Повторимось либо нужна, либо противопоказана
* эмбедед - нужны низкие затраты по памяти и производительности, части апаратных решений нет
* финансы - повторимость противопоказана, крайне высокая стойкость, пользоваться просто генератором без подбрасывания энтропии нельзя
* интерфейсные штуки - srand(time(0)) и ОК :)
+ нужно помножить это всё на многопоточно/однопоточно
Я не знаю ни одного решения, которое бы удовлетворяло большинству пунктов
🐙 Antony
и вот уже где-то нужна повторимость, а где-то нет
Fedor
ага и пишут min + rand() % max
Fedor
Ну, в предыдущем проекте эта функция давала неравномерный рандом например. Был написан комментарий, но ее не трогали.
Крылатый
Ну вот split было бы круто иметь.
Крылатый
«Подключите boost за 5 минуток» так себе решение, если честно.
Крылатый
Компиляется он быстро щас.
Крылатый
10 минут это ок.
Крылатый
Для такой громадины.
Крылатый
ИМХО.
Крылатый
Рабочий проект за час собирается
Fedor
Еще contains для std::map очень хочется.
Крылатый
Крылатый
Я бы за, но не я рулю проектом...
Berkus
Fedor
Ну, блин, функцию я и сам напишу
Крылатый
Чо вам, сложно что ле.
Крылатый
И из проекта в проект пишутся/тащатся свои велосипеды для мелких таких задач.
Крылатый
Да, я понимаю, что нужно писать пропозал.
Крылатый
А не бухтеть.)
Anatoly
это вопрос о полноте стандартной библиотеки, какую процедуру предлагаешь ты? без пропозала, без обсуждений х..як в продакшен?
Anatoly
ну, тогда чем конкретно ты недоволен?
Anatoly
пропазалы есть, они обсуждаются
Крылатый
/offtop просто в погоне за универсальностью можно упустить элементарное удобство offtop/
Anatoly
да, бюрократия, дело такое
Berkus
ну так пропозал то где?
Berkus
rand(min, max) не появится из воздуха
Fedor
Есть эти пропозалы, насколько я знаю. Но они не считаютcя приоритетными.
Fedor
http://open-std.org/JTC1/SC22/WG21/docs/papers/2016/p0458r0.html
Крылатый
Nikita
Ну давайте тогда и распределение Уишарта запихнем, чо?
Fedor
Якобы это добавление избыточности в интерфейс
Крылатый
Крылатый
Давайте писать две строчки вместо одной...
Berkus
никакой, делаешь либу - суешь туда свое распределение, пользуешься
Berkus
лучше сделайте open classes и будет найс
Andrei
А я предлагаю добавить в язык зависимые типы.
Andrei
И паттерн матчинг.
Крылатый
Плюсую!
Крылатый
Яростно плюсую!
Anatoly
есть опастность забить библиотеку грузом, который должны будут поддерживать поставщики стандартной библиотеки
Nikita
Anatoly
вопрос о полноте самый непростой
Anatoly
я к тому, если есть математическая библиотека, которая хорошо справляется с вопросами генерации псевдослучайных чисел, то почему бы ей этим и не заниматься?
Anatoly
ну, понятно, "за все хорошое, против всего плохого", я тоже с тобой согласен
Anatoly
только когда остановится? где грань?
Andrei
Andrei
Berkus
Fedor
Berkus
в мультимапе больше считать
Andrei
Andrei
Для std::map
Andrei
https://godbolt.org/g/7GHA4f
Andrei
Оригинальный вопрос был про map :)
Fedor
http://en.cppreference.com/w/cpp/experimental/randint
🐙 Antony
а где randfloat?
🐙 Antony
std::default_random_engine - вот от этой штуки у меня пригорает :)
Vladislav
а что делать-то надо?