Lidi dělají divné věci. Například spouští Linux v Excelu. Využít je emulátor RISC-V mini-rv32ima sestavený jako knihovna DLL, která je volaná z makra VBA (Visual Basic for Applications).
Revolut nabídne neomezený mobilní tarif za 12,50 eur (312 Kč). Aktuálně startuje ve Velké Británii a Německu.
Společnost Amazon miliardáře Jeffa Bezose vypustila na oběžnou dráhu první várku družic svého projektu Kuiper, který má z vesmíru poskytovat vysokorychlostní internetové připojení po celém světě a snažit se konkurovat nyní dominantnímu Starlinku nejbohatšího muže planety Elona Muska.
Poslední aktualizací začal model GPT-4o uživatelům příliš podlézat. OpenAI jej tak vrátila k předchozí verzi.
Google Chrome 136 byl prohlášen za stabilní. Nejnovější stabilní verze 136.0.7103.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 8 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 4.5.0. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.
Byl vydán Mozilla Firefox 138.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 138 je již k dispozici také na Flathubu a Snapcraftu.
Šestnáctý ročník ne-konference jOpenSpace se koná 3. – 5. října 2025 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytvářejí všichni účastníci, se skládá z desetiminutových
… více »Richard Stallman přednáší ve středu 7. května od 16:30 na Technické univerzitě v Liberci o vlivu technologií na svobodu. Přednáška je určená jak odborné tak laické veřejnosti.
miller_rabin. Môj odhad je, že
k = v_bignum_bit_msb(nmo);vráti záporné číslo a potom sa to v nasledujúcom fore cyklí. Navrhujem podávať na každý riadok printf a potom sa uvidí.
v_randgen.c
ve funkci VRandGen * v_randgen_new(void)
. Měl by se tam otevřít /dev/urandom, ale nic to nedělá. Když dám za gen->fd = open(SOURCE, O_RDONLY);
nějaký printf, tak ho to ani nevypíše ale až po delší době to přeskočí do fce v_randgen_get()
v témže souboru.
VRandGen * v_randgen_new(void)
otevře deskriptor na /dev/urandom a ten vrátí – to ještě funguje tak jak má.
Pak v souboru v_bignum.c funkce void v_bignum_set_random(VBigDig *x, VRandGen *gen
) zavolá fci void v_randgen_get(VRandGen *gen, void *bytes, size_t num)
z v_randgen.c.
Tahle funkce vezme deskriptor na /dev/urandom a ten se pokusí přečíst. Pomocí ukazatale by se měly přečtená data vrátit volané funkci. A tady je průser: /dev/urandom se začne číst, ale už neskončí.
void v_prime_set_random(VBigDig *x) { int bits = v_bignum_bit_size(x); VRandGen *gen; gen = v_randgen_new(); do { /* Create candidate, making sure it's both odd and non-zero. */ v_bignum_set_random(x, gen); /* Set topmost two bits, makes sure products are big. */ v_bignum_bit_set(x, bits - 1); v_bignum_bit_set(x, bits - 2); /* Set lowermost bit, makes sure it is odd (better prime candidate that way). */ v_bignum_bit_set(x, 0); } while(!v_prime_test(x, gen)); /* printf("Prime found after %d iterations: ", count); v_bignum_print_hex_lf(x); */ v_randgen_destroy(gen); }
dd if=/dev/urandom of=../verse-tests/rand count=1000 bs=32
. Potom som prepísal 64. riadok v_randgen.c na #define SOURCE "rand"
. Touto úpravou mi začal program po každom spustení generovať tú istú sekvenciu čísel, takže sa dá pekne porovnať dobrý a zlý výstup.
Dobrý program označil 0xC4FD1FB7720D4DF2C15DBD9A0FF4C9454399401720757DAB7DDBD68F909D3BC1 ako prvočíslo.
Zlý si myslí, že 0xC4FD1FB7720D4DF2C15DBD9A0FF4C9454399401720757DAB7DDBD68F909D3BC1 nie je prvočíslo a pokračuje drzo ďalej.
v_bignum_set_string_hex()
, popř. pomocí v_bignum_set_string()
x
nastavil na nějaké zaručené prvočíslo (některá jsou v v_prime_set_table()
, ale zkoušel jsem i jiná).
v_bignum_reduce(d, n, mu);
pri druhom prechode for cyklom vracia nesprávny výsledok.
v_bignum_bit_shift_right()
volanej z v_bignum_reduce()
v_bignum_bit_shift_right()
ale v_bignum_mul()
, nejak som to splietolv_bignum_square_half(d);
Prvá kompilácia:
./a.out > out1
Druhá kompilácia:
./a.out > out2
diff -u out1 out2 > priloha.diff
Tiskni
Sdílej: