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

#Include <iostream> #include <random> using namespace std; int main() {

static random_device rd {};
static uniform_int_distribution<char> dis('a', 'z');
for (unsigned int i = 0; i < 300; ++i)
cout << dis(rd);
cout << endl;
}

strace :

getrandom("\xbe\xa8\x98\x18\xae\xe5\x55\xd3", 8, GRND_NONBLOCK) = 8
brk(NULL) = 0x23cf000
brk(0x23f0000) = 0x23f0000
newfstatat(1, "", {st_mode=S_IFCHR|0620, st_rdev=makedev(0x88, 0x7), ...}, AT_EMPTY_PATH) = 0
write(1, "wdykohuqkanfvfziojclhitgwyuaenec"...) = 301
exit_group(0) = ?

Вопрос, почему я печатаю 300 символов, а из рандома прочиталось только 8 байт ? по идее тут не должно быть никакой псевдо-рандом генерации вне ядра. ЖЕ. где я не прав ?

10 ответов

25 просмотров

попробуйте так: cout << +dis(rd);

Андрей Таусинов
попробуйте так: cout << +dis(rd);

Это приведение к int унарным +'ом?

Mark ☢️-Korenberg Автор вопроса
Андрей Таусинов
попробуйте так: cout << +dis(rd);

ну я, конечно, попробую, но что это изменит?

Mark ☢️ Korenberg
ну я, конечно, попробую, но что это изменит?

Предлагаю поступить в обратном порядке - если изменит, то я объясню

Mark ☢️-Korenberg Автор вопроса
Андрей Таусинов
Предлагаю поступить в обратном порядке - если изме...

вывод, конечно, поменялся, но как брало 8 байт так и берёт

Mark ☢️ Korenberg
вывод, конечно, поменялся, но как брало 8 байт так...

Извиняюсь - неправильно вопрос понял, думал, что проблема в том, что на экран печатается меньше, чем ожидаете. Подозревал, что это просто из-за непечатных символов. Но даже это не так, там от 'a' до 'z' выборка.

Mark ☢️-Korenberg Автор вопроса
Андрей Таусинов
Извиняюсь - неправильно вопрос понял, думал, что п...

Да. печатается всё нормально. вопрос почему рандома мало вынимает из ядра

Mark ☢️-Korenberg Автор вопроса
Eoan Ermine
Потому что реализация так решила

А как зафорсить чтобы всегда брало из ядра ?

Mark ☢️ Korenberg
вывод, конечно, поменялся, но как брало 8 байт так...

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта