Cambalache, tj. RAD (rapid application development) nástroj pro GTK 4 a GTK 3, dospěl po pěti letech vývoje do verze 1.0. Instalovat jej lze i z Flathubu.
KiCad (Wikipedie), sada svobodných softwarových nástrojů pro počítačový návrh elektronických zařízení (EDA), byl vydán v nové major verzi 10.0.0 (𝕏). Přehled novinek v příspěvku na blogu.
Letošní Turingovou cenu (2025 ACM A.M. Turing Award, Nobelova cena informatiky) získali Charles H. Bennett a Gilles Brassard za základní přínosy do oboru kvantové informatiky, které převrátily pojetí bezpečné neprolomitelné komunikace a výpočetní techniky. Jejich protokol BB84 z roku 1984 umožnil fyzikálně zaručený bezpečný přenos šifrovacích klíčů, zatímco jejich práce o kvantové teleportaci položila teoretické základy pro budoucí kvantový internet. Jejich práce spojila fyziku s informatikou a ovlivnila celou generaci vědců.
Firefox 149 dostupný od 24. března přinese bezplatnou vestavěnou VPN s 50 GB přenesených dat měsíčně (s CZ a SK se zatím nepočítá) a zobrazení dvou webových stránek vedle sebe v jednom panelu (split view). Firefox Labs 149 umožní přidat poznámky k panelům (tab notes, videoukázka).
Byla vydána nová stabilní verze 7.9 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 146. Přehled novinek i s náhledy v příspěvku na blogu.
Dle plánu byla vydána Opera GX pro Linux. Ke stažení je .deb i .rpm. V plánu je flatpak. Opera GX je webový prohlížeč zaměřený na hráče počítačových her.
GNUnet (Wikipedie) byl vydán v nové major verzi 0.27.0. Jedná se o framework pro decentralizované peer-to-peer síťování, na kterém je postavena řada aplikací.
Byly publikovány informace (technické detaily) o bezpečnostním problému Snapu. Jedná se o CVE-2026-3888. Neprivilegovaný lokální uživatel může s využitím snap-confine a systemd-tmpfiles získat práva roota.
Nightingale je open-source karaoke aplikace, která z jakékoliv písničky lokálního alba (včetně videí) dokáže oddělit vokály, získat text a vše přehrát se synchronizací na úrovni jednotlivých slov a hodnocením intonace. Pro separaci vokálů využívá UVR Karaoke model s Demucs od Mety, texty písní stahuje z lrclib.net (LRCLIB), případně extrahuje pomocí whisperX, který rovněž využívá k načasování slov. V případě audiosouborů aplikace na
… více »Po půl roce vývoje od vydání verze 49 bylo vydáno GNOME 50 s kódovým názvem Tokyo (Mastodon). Podrobný přehled novinek i s náhledy v poznámkách k vydání a v novinkách pro vývojáře.
Diskuse byla administrátory uzamčena.
))
Generují náhodné číslo pro něž ověří je-lis jistou pravděpodobností
prvočíslo, pokud není generují znovu.
((prvočíslo * prvočíslo) + 1)věřím, že by se to dalo ještě vylopšit, ačkoliv už nevím jak
Wikipedie se u Eratosthenova síta zmiňuje o urychlování pomocí kruhové faktorizace, tak to můžeš zkusit 
Tvůj program je ± Eratosthenovo síto, to co je na wikipedii pod heslem wheel factorization je ale jedna z metod rychlých odhadů prvočíselnosti. (podobné používají třeba kryptografické programy při generování klíčů - teprve pokuď projde číslo některým z těchto testů, zkouší se dál, jestli je to skutečně prvočíslo)
#!/usr/bin/env ruby
nRozsah = 10000
puts (2..nRozsah).inject((2..nRozsah).to_a) {|res, i| res.select{|n|n==i||n%i!=0} }
#include <stdio.h>
#include <math.h>
#include "error.h"
#define N 100000000LU
#define UI \
(unsigned int)
#define SIZE(num) \
(num / (sizeof(long) * 8) + 2)
#define BITS \
(sizeof(long) * 8)
#define BITPOS(index) \
((index % BITS) + 1)
#define ArrayPos(index) \
(UI index/BITS+1)
#define OutArrayError(pole, index) \
Error("Index %ld mimo rozsah 0..%ld", (long) index, (long) pole[0])
#define OutArray(pole, index) \
(index < 0 || index > pole[0]) ? OutArrayError(pole, index),0 :
#define BitArray(jmeno_pole, velikost) \
unsigned long jmeno_pole[SIZE(velikost)] = {0}; \
jmeno_pole[0] = velikost
#ifndef USE_INLINE
#define GetBitIn(jmeno_pole, index) \
(jmeno_pole[ArrayPos(index)] & (1LU << BITPOS(index)) ? 1 : 0)
#define GetBit(jmeno_pole, index) \
OutArray(jmeno_pole, index) GetBitIn(jmeno_pole, index)
#define SetBit(pole, index, vyraz) \
if(!(index >= 0U && index <= pole[0]))\
OutArrayError(pole, index);\
if(vyraz != 0) \
pole[ArrayPos(index)] |= 1LU << BITPOS(index); \
else \
pole[ArrayPos(index)] ^= GetBit(pole, index) << BITPOS(index)
#endif
#ifdef USE_INLINE
inline int GetBit(unsigned long pole[], long index)
{
if(index < 1 || index > pole[0])
Error("Index %ld mimo rozsah 0..%ld", (long) index, (long) pole[0]);
return pole[ArrayPos(index)] & ((1LU << BITPOS(index)) ? 1 : 0);
}
inline void SetBit(unsigned long pole[], long index, int vyraz)
{
if(index < 0 || index > pole[0])
Error("Index %ld mimo rozsah 0..%ld", (long) index, (long) pole[0]);
if(vyraz != 0)
pole[ArrayPos(index)] |= 1LU << BITPOS(index);
else
pole[ArrayPos(index)] ^= GetBit(pole, index) << BITPOS(index);
}
#endif
int main()
{
BitArray(eSito, N);
SetBit(eSito, 0, 1);
SetBit(eSito, 1, 0);
for(unsigned int i = 2; i < N; i++)
{
SetBit(eSito, i, 0);
}
unsigned long sqrt_n = sqrt(N);
for(unsigned int i = 2; i < sqrt_n; i++)
{
if(GetBit(eSito, i) == 0)
{
for(unsigned int j = i * i; j < N; j += i)
{
SetBit(eSito, j, 1);
}
}
}
int count = 0;
int prvocisla[10] = {0};
for(unsigned int i = N - 1; i > 1; i--)
{
if(GetBit(eSito, i) == 0)
{
prvocisla[count] = i;
count += 1;
if(count == 10)
break;
}
}
for(int i = 0; i < 10; i++)
printf("%d\n", prvocisla[9-i]);
return 0;
}
Funkcni by to byt melo, nejrychlejsi je to pri pouziti maker, inlive funkce jsou tam pro porovnani (bylo v zadani) a je to cca o 1s pomalejsi. Jeste dodam, ze se vypisuje jen poslednich 10prvocisel, vypisovat vsechno by bylo pochopitelne znacne pomalejsi, kuli io operacim.
Tiskni
Sdílej: