@ProCxx

Страница 946 из 2477
Alexander
08.06.2017
13:45:24
не умею

import std.random randomchik <int> (1, 11);

Alexander
08.06.2017
13:46:29
ноно, документацию надо читать
ну так я об этом и говорю ?

Google
Antony
08.06.2017
13:47:03
Что с повторимостью последовательности? Что с предсказуемостью последовательности?

Что с производительностью?

Alexander
08.06.2017
13:48:06
псевдо-рандом, мерсенн твистер

https://docs.python.org/2/library/random.html

емнип, питоновский рандом работает так: генерирует флоат от нуля до одного, а из него уже всякие штуки получает. И инты, и рендж, и всяко разное

Alexander
08.06.2017
13:50:42
нажми-ка пару раз по rand() F12, и увидишь, что там за стыд написан ?

Antony
08.06.2017
13:51:39
Мерсен твистер - тяжёлый, его сложно инициализировать с помощью обычного seed; Будет один стейт на все потоки, или в каждом потоке свой стейт? Какое изначальное значение?

Simon
08.06.2017
13:54:32
Внезапно, никто не идкт на яндексоивент?

Alexander
08.06.2017
13:55:09
ну в джаве оно обмазано synchronized, что нам не подходит. -> не thread safe

Google
Alexander
08.06.2017
13:55:22
https://stackoverflow.com/questions/5819638/is-random-class-thread-safe

у шарпа не thread safe

ну и rand у нас был не thread safe, емнип

я понимаю, куда ты клонишь - сначала пишем однопоточное приложение, пишем везде super_rand(), всё ок. Потом пытаемся сделать многопоточное, получаем классные грабли

Antony
08.06.2017
13:58:19
Я могу съекономить время: в джаве несколько классов для рандома (читай С++ных RBG), в ней нужно создать RBG чтобы генерировать число. RBG варьируются по секурности и дефолтному значению и проч параметрам... Тоесть выглядит очень похоже на то, что сейчас в С++

Alexander
08.06.2017
13:58:39
так как мы себе by default не можем позволить synchronized

Так, и как это отменяет наличие в либе обычного удобного биндинга для рандома?

Antony
08.06.2017
14:00:18
отменяет это тем, что в разных проектах абсолютно разные требования и нет возможности сделать rand(min, max) который бы подходил более 66% пользователей

Alexander
08.06.2017
14:00:24
Будет интерфейс простого рандома, без изысков, блекджека и куртизанок. А к нему, в дополнение, есть то действительно хорошее решение, что мы имеем сейчас

Berkus
08.06.2017
14:00:25
Так, и как это отменяет наличие в либе обычного удобного биндинга для рандома?
что дефолтный рандом ансейф и его бездумно нельзя использовать

Alexander
08.06.2017
14:00:42
ну вот как у питона получилось, а у нас нет

Berkus
08.06.2017
14:00:43
srand(time(0)); это вообще секьюрити дыра

Alexander
08.06.2017
14:01:00
srand(time(0)); это вообще секьюрити дыра
да про это никто не говорит даже - и так ясно

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

Berkus
08.06.2017
14:01:40
это ты горе-программистам скажи

Antony
08.06.2017
14:01:41
ну вот как у питона получилось, а у нас нет
Плохое решение - не значит что получилось

Alexander
08.06.2017
14:02:06
Плохое решение - не значит что получилось
так, то есть отсутствие вообще простого решения это лучше?

Alexander
08.06.2017
14:06:34
в этом случае да
а я не согласен

Berkus
08.06.2017
14:06:45
ну сделай свой враппер тогда, 2 строчки

Google
Alexander
08.06.2017
14:07:20
ну сделай свой враппер тогда, 2 строчки
вот скажи, почему я должен это делать, если это УЖЕ может быть сделано за меня? ты думаешь я не понимаю, как быстро это делается?

Berkus
08.06.2017
14:08:18
если понимаешь - уже пол дела сделано, а давать топор чувакам которые не понимают и еще и ногу удобно перед ними подкладывать - не оч

Alexander
08.06.2017
14:08:23
кто не хочет - пусть не юзает, мне то какое дело до них. Пусть пишут свои варианты, thread safe, более быстре и так далее. Я уважаю их выбор и понимаю, что часто так и нужно делать. Но это не повод не написать простой как rand() враппер, который работает

Berkus
08.06.2017
14:09:04
доку никто не будет читать

Alexander
08.06.2017
14:09:05
с такими речами мы сейчас дойдём до Safe STL

Antony
08.06.2017
14:09:13
Давай я пару примеров приведу, где нужны абсолютно разные подходы: * бенчмарки - нужна повторимость результатов, при том между платформами и ОС * сервера игровой механики - нужна производительность, средняя стойкость и можно немного потратить время на старте. Повторимось либо нужна, либо противопоказана * эмбедед - нужны низкие затраты по памяти и производительности, части апаратных решений нет * финансы - повторимость противопоказана, крайне высокая стойкость, пользоваться просто генератором без подбрасывания энтропии нельзя * интерфейсные штуки - srand(time(0)) и ОК :) + нужно помножить это всё на многопоточно/однопоточно Я не знаю ни одного решения, которое бы удовлетворяло большинству пунктов

Alexander
08.06.2017
14:09:22
доку никто не будет читать
прямая дорога в бургерную на кассу

Давай я пару примеров приведу, где нужны абсолютно разные подходы: * бенчмарки - нужна повторимость результатов, при том между платформами и ОС * сервера игровой механики - нужна производительность, средняя стойкость и можно немного потратить время на старте. Повторимось либо нужна, либо противопоказана * эмбедед - нужны низкие затраты по памяти и производительности, части апаратных решений нет * финансы - повторимость противопоказана, крайне высокая стойкость, пользоваться просто генератором без подбрасывания энтропии нельзя * интерфейсные штуки - srand(time(0)) и ОК :) + нужно помножить это всё на многопоточно/однопоточно Я не знаю ни одного решения, которое бы удовлетворяло большинству пунктов
ты забыл кое-какой пункт. Обычное говнопрограммирование. Самое обычное. Лабы в универе, наколенные наброски, прототипы, десктопное говно, которого у меня на работе пруд пруди

там вообще на всё плевать. srand(time(0))? пойдёт. но где к нему rand(min, max) ?

Alexander
08.06.2017
14:12:19
про твои кейсы - согласен абсолютно. Именно для них и не только для них нужен весь тот набор средств, что С++ даёт уже

Alexander
08.06.2017
14:12:26
Alexander
08.06.2017
14:12:40
просто хотят рандом в диапазоне

ага и пишут min + rand() % max
я по секрету скажу, что много чего можно руками сделать: и split написать за 10 строк кода, и проверку, чем заканчивается строка сделать через .substr вместо .ends_with() . Но зачем так делать?

Fedor
08.06.2017
14:14:24
а зачем?
Ну, в предыдущем проекте эта функция давала неравномерный рандом например. Был написан комментарий, но ее не трогали.

Alexander
08.06.2017
14:14:28
https://www.youtube.com/watch?v=vB27LVWK-KU

Дед Пегас
08.06.2017
14:14:36
Ну вот split было бы круто иметь.

Google
Дед Пегас
08.06.2017
14:15:06
«Подключите boost за 5 минуток» так себе решение, если честно.

Alexander
08.06.2017
14:15:10
Ну вот split было бы круто иметь.
будет. когда - не знаю. А пока пиши сам\юзай буст\юзай что-то ещё

«Подключите boost за 5 минуток» так себе решение, если честно.
он подключается дейтсвительно просто, а вот компилится не оченб быстро

Дед Пегас
08.06.2017
14:15:47
Компиляется он быстро щас.

Alexander
08.06.2017
14:16:02
Компиляется он быстро щас.
у меня на i7 меньше 10 минут, что не так то и быстро

не LibreOffice, поди ?

Дед Пегас
08.06.2017
14:16:24
10 минут это ок.

Для такой громадины.

ИМХО.

Рабочий проект за час собирается

Admin
ERROR: S client not available

Fedor
08.06.2017
14:16:54
Еще contains для std::map очень хочется.

Alexander
08.06.2017
14:16:55
10 минут это ок.
просто проц не самый плохой)

Дед Пегас
08.06.2017
14:17:08
Alexander
08.06.2017
14:17:19
Рабочий проект за час собирается
попробуйте системы распределённого билда. Благо, есть бесплатные вещи, которые нормально работают

Еще contains для std::map очень хочется.
емнип, есть такой пропозал

Alexander
08.06.2017
14:17:52
Я бы за, но не я рулю проектом...
ну так набрось, что просиживаете штаны и хочется код писать

Berkus
08.06.2017
14:17:54
Еще contains для std::map очень хочется.
сделал, работает, как free function )

Fedor
08.06.2017
14:18:21
Ну, блин, функцию я и сам напишу

Google
Дед Пегас
08.06.2017
14:18:28
сделал, работает, как free function )
Ну да. Так всегда. «Сделайте за пять минуточек свой велосипедик».

Чо вам, сложно что ле.

И из проекта в проект пишутся/тащатся свои велосипеды для мелких таких задач.

Да, я понимаю, что нужно писать пропозал.

А не бухтеть.)

Anatoly
08.06.2017
14:20:17
я по секрету скажу, что много чего можно руками сделать: и split написать за 10 строк кода, и проверку, чем заканчивается строка сделать через .substr вместо .ends_with() . Но зачем так делать?
это вопрос о полноте стандартной библиотеки, какую процедуру предлагаешь ты? без пропозала, без обсуждений х..як в продакшен?

Alexander
08.06.2017
14:20:54
я спрашиваю - где мой стандартный биндинг. Почему питон имеет, а я нет?

Anatoly
08.06.2017
14:21:17
ну, тогда чем конкретно ты недоволен?

пропазалы есть, они обсуждаются

Alexander
08.06.2017
14:21:30
Дед Пегас
08.06.2017
14:21:34
/offtop просто в погоне за универсальностью можно упустить элементарное удобство offtop/

Anatoly
08.06.2017
14:21:42
да, бюрократия, дело такое

Berkus
08.06.2017
14:22:27
тем, что нет rand(min, max)
ну так пропозал то где?

rand(min, max) не появится из воздуха

Alexander
08.06.2017
14:23:19
и что-то мне подсказывает, что ткаой уже есть. Надо поискать

Fedor
08.06.2017
14:24:06
Есть эти пропозалы, насколько я знаю. Но они не считаютcя приоритетными.

http://open-std.org/JTC1/SC22/WG21/docs/papers/2016/p0458r0.html

/dev
08.06.2017
14:24:31
тем, что нет rand(min, max)
Ну давайте тогда и распределение Уишарта запихнем, чо?

Fedor
08.06.2017
14:24:44
Якобы это добавление избыточности в интерфейс

Страница 946 из 2477