abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
dnes 22:11 | Nová verze

Byla vydána verze 2.0.10 multiplatformního integrovaného vývojového prostředí (IDE) pro rychlý vývoj aplikaci (RAD) ve Free Pascalu Lazarus (Wikipedie). Nově využívá nedávno vydaný Free Pascal Compiler (FPC) 3.2.0.

Ladislav Hagara | Komentářů: 1
dnes 13:00 | Komunita

Letošní konference linuxových instalatérů Linux Plumbers Conference (LPC 2020) proběhne online ve dnech 24. až 28. srpna. Vývojáři Linuxu by měli probírat také podporu programovacího jazyka Rust v linuxovém jádru [Hacker News].

Ladislav Hagara | Komentářů: 0
včera 17:00 | Nová verze

Multiplatformní open source počítačová hra Minetest byla vydána ve verzi 5.3.0. Jedná se o hru inspirovanou Minecraftem.

Ladislav Hagara | Komentářů: 0
včera 15:22 | IT novinky

Mezinárodní organizace pro sledování rotace Země a referenčních systémů (IERS) oznámila (Bulletin C 60), že letošní rok bude opět bez přestupné sekundy. Poslední vkládání přestupné sekundy proběhlo v prosinci 2016.

Ladislav Hagara | Komentářů: 1
včera 02:22 | Zajímavý projekt

Lze si počítačovou klávesnici navrhnout a následně vytisknout na 3D tiskárně? I spínače? James Stanley se rozhodl, že to zkusí a výsledky svého snažení zveřejňuje na svém blogu. V aktuálním příspěvku představil první funkční prototyp s třemi klávesami. Ne, nejsou to Ctrl-Alt-Delete. :-)

Ladislav Hagara | Komentářů: 33
včera 01:11 | Nová verze

Byla vydána nová verze 1.47 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Ve verzi 1.47 bude vydáno také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

Ladislav Hagara | Komentářů: 1
9.7. 13:33 | Komunita

Služba Firefox Send (zprávička) pro jednoduché a soukromé sdílení souborů s end-to-end šifrováním je dočasně pozastavena. Byla zneužívaná k šíření malwaru [reddit].

Ladislav Hagara | Komentářů: 10
9.7. 05:55 | Komunita

Google a Canonical společně oznámili možnost běhu aplikací postavených na Flutteru (Wikipedie) také na Linuxu. Na Linuxu lze tyto grafické aplikace také přímo vyvíjet. Současně byla představena pomocí Flutteru vytvořená aplikace pro správu kontaktů Flokk. Ukázka aplikace běžící na Ubuntu na YouTube. Flutter SDK i Flokk jsou již k dispozici také jako Snap balíčky na Snapcraftu.

Ladislav Hagara | Komentářů: 12
9.7. 02:22 | Komunita

Google na svém blogu věnovanému open source představil novou organizaci Open Usage Commons. Cílem této organizace je rozšířit filozofii a definici open source také na ochranné známky projektů. První tři zapojené projekty jsou Angular, Gerrit a Istio. Více v často kladených otázkách (FAQ).

Ladislav Hagara | Komentářů: 1
9.7. 01:11 | Nová verze

Společnost NVIDIA oficiálně vydala verzi 11.0 toolkitu CUDA (Wikipedie) umožňujícího vývoj aplikací běžících na jejich grafických kartách. Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
Používáte některé open-source řešení [protokol] pro šifrovaný instant messaging?
 (22%)
 (30%)
 (4%)
 (12%)
 (17%)
 (5%)
 (12%)
 (25%)
Celkem 330 hlasů
 Komentářů: 35, poslední 9.7. 02:05
Rozcestník

Diskuse byla administrátory uzamčena.

16.9.2007 20:31 Käyttäjä 11133 | skóre: 58 | blog: Ajattelee menneisyyttä
Rozbalit Rozbalit vše Re: Program na výpis prvočísel
Právě kvůli velké paměťové náročnosti se nemůže tento algoritmus používat v kryptografických aplikacích :-)
16.9.2007 20:56 andree | skóre: 39 | blog: andreeeeelog
Rozbalit Rozbalit vše Re: Program na výpis prvočísel
prave nedavno som o tom rozmyslal, ako asi zistuju programy prvocisla, ktore maju tak 1000 cifier.. prvocisla z tabulky sa na asymetricke sifrovanie asi pouzivat nedaju - zo zrejmych dovodov :-)))
16.9.2007 21:02 Käyttäjä 11133 | skóre: 58 | blog: Ajattelee menneisyyttä
Rozbalit Rozbalit vše Re: Program na výpis prvočísel
Generují náhodné číslo pro něž ověří je-li prvočíslo, pokud není generují znovu.
16.9.2007 21:03 Käyttäjä 11133 | skóre: 58 | blog: Ajattelee menneisyyttä
Rozbalit Rozbalit vše Re: Program na výpis prvočísel
Tedy pseudonáhodné :-)
16.9.2007 21:09 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
Rozbalit Rozbalit vše Re: Program na výpis prvočísel
Generují náhodné číslo pro něž ověří je-li
s jistou pravděpodobností
prvočíslo, pokud není generují znovu.
:-)
Ještě na tom nejsem tak špatně, abych četl Viewegha.
16.9.2007 21:18 Käyttäjä 11133 | skóre: 58 | blog: Ajattelee menneisyyttä
Rozbalit Rozbalit vše Re: Program na výpis prvočísel
jj.
16.9.2007 22:10 andree | skóre: 39 | blog: andreeeeelog
Rozbalit Rozbalit vše Re: Program na výpis prvočísel
ahaaa, no hlavne to ma zaujimalo, ako sa overi ze to je prvocislo... toto normalne dava zmysel :o)
17.9.2007 07:20 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: Program na výpis prvočísel
z prednášok si pamatam, že cislo sa negeneruje náhodne ale ako ((prvočíslo * prvočíslo) + 1)
Na testovanie tam bolo niečo, čo si už presne nepamätám, niečo na spôsob: pravdepodobnosť, že je toto prvočíslo = 1/2 ^ počet testov (detaily by som musel hľadať)
17.9.2007 08:23 Tom.š Ze.le.in | skóre: 21 | blog: tz
Rozbalit Rozbalit vše Re: Program na výpis prvočísel
Doporučuji třeba Handbook of Applied Cryptography (stáhnutelné z webu jako pdf), tam tohle je celkem detailně a přístupně popsané
17.9.2007 23:38 elviin | skóre: 29 | blog: elviin | Plzeň-Praha
Rozbalit Rozbalit vše Re: Program na výpis prvočísel
je nejakej teorem, kterej rika, ze v blizkosti nahdone zvoleneho cisla se s jistou vypocitalenou ppsti vyskytuje prvocislo. ted si nemuzu vzpomenout, jak se nazyva.

Btw jsem videl (ted nemuzu najit stranku) jakysi postup, kde se prvocisla zanesla do grafu - coz byla spirala z celych cisel. Po odstraneni neprvocisel se projevila provcisla. Ta se vyskytovala na urcitych krivkach vychazejicich z pocatku grafu. Takze se tim elimoval prohledavany prostor celych kladnych cisel.

Btw2 slysel nekdo o neuronovych sitich, ktery by se daly naucit pro urcovani prvocisla?
18.9.2007 16:26 zero
Rozbalit Rozbalit vše Re: Program na výpis prvočísel
Jmenuje se to prvočíselná věta, podle které je počet prvočísel menších x přibližně x/ln(x). Z ní snadno plyne že pro dostatečně velká x je pravděpodobnost prvočísla kolem x rovna 1/ln(x). Tedy např pro x = 1000000 je asi každé 14-té číslo prvočíslem.
16.9.2007 21:30 Martin Tůma | skóre: 38 | blog: RTFM | Praha
Rozbalit Rozbalit vše Re: Program na výpis prvočísel
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 ;-)

Každý má právo na můj názor!
16.9.2007 21:35 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
Rozbalit Rozbalit vše Re: Program na výpis prvočísel
díky kouknu se na to
Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
16.9.2007 21:39 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
Rozbalit Rozbalit vše Re: Program na výpis prvočísel
No anglicky sice neumim nijak bravurne, ale zda se mi ze muj program +- toto pouziva
Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
16.9.2007 22:06 Martin Tůma | skóre: 38 | blog: RTFM | Praha
Rozbalit Rozbalit vše Re: Program na výpis prvočísel

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)

Každý má právo na můj názor!
17.9.2007 00:26 Deleted [8409] | skóre: 14 | blog: darkblog
Rozbalit Rozbalit vše Re: Program na výpis prvočísel
Nároky na pamět snížíte i tím, že si uděléte nějaké bitové pole. Používáte sice bool[N], ale ono je to jen obyčejný char. Bitovým polem snížíte nároky 8x.
17.9.2007 01:21 Ivanhoej | skóre: 26 | blog: ss2_Debian | Bratislava
Rozbalit Rozbalit vše Re: Program na výpis prvočísel
Toto je sice pomale no ale kolko pisania to usetri :)
#!/usr/bin/env ruby
nRozsah = 10000
puts (2..nRozsah).inject((2..nRozsah).to_a) {|res, i| res.select{|n|n==i||n%i!=0} }
*** Jabber (XMPP): fogo@jabber.cz ***
17.9.2007 08:27 thingie
Rozbalit Rozbalit vše Re: Program na výpis prvočísel
Hm, neříkejte mi, že by to v tom ruby nešlo napsat hezčejc než tímhle ošklivým přepisem céčkového kódu, to je hrozně o ničem.
17.9.2007 09:10 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
Rozbalit Rozbalit vše Re: Program na výpis prvočísel
jj šlo, taky to tak někde mám, ale nebylo to tak výkoné.
Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
17.9.2007 08:46 Tom.š Ze.le.in | skóre: 21 | blog: tz
Rozbalit Rozbalit vše Re: Program na výpis prvočísel
Nevím jak je definováno v C++ polePravda, ale pokud to bere tolik paměti co říkáte, tak by se to zřejmě dalo triválně vylepšit přepisem do bitového pole s osminovou paměťovou náročností. Vynechat v poli sudá čísla - další polovina paměti, možná vynechat 6k+3 - další úspora. Ale další podobné úspory (a možná ani tahle) už asi nemají cenu a je lepší přejít na sofistikovanější algoritmy.
17.9.2007 18:42 X3 | blog: Půlnoční blog
Rozbalit Rozbalit vše Re: Program na výpis prvočísel
Ted si vzpominam, ze jsme ve skole pred 2 lety mely taky jako projekt udelat program na vypocet prvocisel... Jen jsme meli vypocitat prvocisla do 15 000 000 do 4 sekund :) A slo to :)
Kuk :-)
17.9.2007 18:44 X3 | blog: Půlnoční blog
Rozbalit Rozbalit vše Re: Program na výpis prvočísel
Jo jeste bych uvedl ze v pameti to zabiralo +- 12MB (bitove pole pres char) a pouzito bylo Erasthenovo sito :)
Kuk :-)
17.9.2007 19:01 foo
Rozbalit Rozbalit vše Re: Program na výpis prvočísel
Bez uvedeni OS, programovaciho jazyka a typu hardware atd. mi to prijde jako bohapuste chvastani. :-D
17.9.2007 19:49 X3 | blog: Půlnoční blog
Rozbalit Rozbalit vše Re: Program na výpis prvočísel
Dobre, ja myslel, ze kdyz jsme na abclinuxu tak jsou lidi natolik inteligentni, ze kdyz neni uveden os tak se jedna o linux.

Takze jsem to vyhrabal - nejednalo se o prvocisla do 10M, ale do 100M, jelo to i na win, i na linuxu, proste je to obyc C, za 4s to zvladal i muj 1,5GHz stroj s windows, skolni 64bit 2Ghz to zvladal za 3,2s tady mas teda zdrojak

#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.
Kuk :-)
17.9.2007 21:22 Tom.š Ze.le.in | skóre: 21 | blog: tz
Rozbalit Rozbalit vše Re: Program na výpis prvočísel
Bohapusté chvástání? Mně to přijde dost skromné, zkuste to - není na to potřeba ani makroassembler zvaný C - do těch 15M za daných podmínek (vypis poslednich deseti) to zvládne přímočará implementace třeba v Common Lispu (sbcl) na pár let starém Athlonu 1700+ pod sekundu.

Do těch 100M to trvalo už sekund sedm, uznávám...

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.