Byl zveřejněn průběžně aktualizovaný program konference OpenAlt 2026 o otevřeném softwaru a datech, IT bezpečnosti, DIY a IoT. Konference proběhne o víkendu 7. a 8. listopadu v prostorách FIT VUT v Brně. Vstup je zdarma.
Po 9 týdnech vývoje od vydání Linuxu 7.2 oznámil Linus Torvalds vydání Linuxu 7.3. Podrobný přehled novinek a vylepšení na Linux Kernel Newbies nebo LWN.net: první a druhá polovina začleňovacího okna.
Memtest86+ (Wikipedie), svobodný nástroj pro kontrolu operační paměti, byl vydán ve verzi 9.00. S podporou architektury AArch64 (ARM64).
Společnost Fairphone stojící za stejnojmennými mobilními telefony představila (pdf) bezdrátová špuntová sluchátka Fairbuds 2. Opravitelná, s vyměnitelnými bateriemi a tříletou zárukou. Cena 119 eur.
O víkendu 17. a 18. října lze na brněnském výstavišti navštívit s jednou vstupenkou dvě akce: Maker Faire Brno, festival inovací, kreativity a kutilství, a GameDev Connect, akci určenou pro všechny současné a hlavně budoucí herní vývojáře.
Canonical vydal (email) Ubuntu 26.10 Stonking Stingray. Přehled novinek v poznámkách k vydání. Jedná se o průběžné vydání s podporou 9 měsíců, tj. do července 2027.
České Radiokomunikace (CRA) ve čtvrtek odstřelily rozhlasový vysílač Liblice B, dosud nejvyšší stavbu v Česku. O demolici dvou 355 metrů vysokých stožárů rozhodly z důvodu jejich nevyužívání, už v úterý přitom zhasly a demontovaly jejich osvětlení.
#include <iostream>
#include <stdlib.h>
#include <stdint.h>
#include <time.h>
#include <iomanip>
int main()
{
srand(time(NULL));
std::cout << " RAND_MAX: " << RAND_MAX << std::endl;
uint32_t r = rand() % 2147483648;
r += rand() % 2147483648;
std::cout << " 31bit: "<< std::setw(10) << std::hex << r << std::endl;
r = ((rand() % 256) << 24) | ((rand() % 256) << 16) | ((rand() % 256) << 8) | ((rand() % 256)) ;
std::cout << " 8bit: " << std::setw(10) << std::hex<< r << std::endl;
return 0;
}
#include <iostream>
#include <stdlib.h>
#include <stdint.h>
#include <time.h>
#include <iomanip>
int main()
{
int cnt[256] = {0, };
for (int i = 0; i < 100000; ++i)
{
uint32_t r = rand() % 128;
r += rand() % 128;
++cnt[r];
}
for (int i = 0; i < 256; ++i)
{
std::cout << cnt[i] << "\n";
}
}
a dava to distribuci co je v priloze.
Ten druhej zpusob je lepsi, nekde jsem ale cetl ze u "linear congruential generatoru" (kterej je predpokladam pouzitej v rand()) maji spodni bity kratsi periodu nez horni, proto by mozna bylo lepsi pouzit deleni misto modula.
Puvodnimu autorovy bych doporucil:
- pokud potrebujes "cryptographically secure" generator tak pouzi /dev/random
- pokud ne tak se podivej na generatory v c++11
- pokud nemuzes pouzit c++11 tak naprogramuj vlastni linear congruential generator. Navod treba tady: http://en.wikipedia.org/wiki/Linear_congruential_generator. Z tabulky vem hodnoty pro 64 bit. Celkove to budou asi 3 radky kodu...
Tiskni
Sdílej: