» Poradna » Programy

Matematický problém - předem děkuji za pomoc

 |   | 

Ověřte , zda-li každé sudé číslo větší než 2 a menší než 1000 lze vyjádřit jako součet dvou prvočísel.   Mám to vyřešit v pascalu - ale to je vedlejší. Nenapadá mě žádné chytré řešení.
Děkuji za pomoc.

Odpovědi na otázku

 |   | 

A jaka te napadaji hloupa reseni ?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   | 

Jako první řešení mě napadá najít si všechny prvočísla větší než 2 a menší než 1000. A potom pro všechny čísla který se mají ověřit zkusit jestli pro ně existují dvě prvočísla který by daly ten součet (třeba úplně debilně přes dva vnořený cykly).Ideální algoritmus to asi není, ale na naprogramování je to brnkačka

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   | 

sice pěkně blbej, ale přece jenom postup: dej si do maticové konstanty M[p] prvočísla do 1000 a pak zkoušej u každýho sudýho čísla k kombinovat jejich součty - pokud bude M[i]+M[j]=k, tak máš ověřeno a jde š na další k. Kombinace dělej tak, že vezmeš M[1] a sčítáš ho postupně se všemi M[1] až M [p] (p je počet těch prvočísel v M) a tak dále: M[2] sčítáš se všemi M[2] až M[p], atd.Udělat seznam prvočísel si můžeš např. pomocí algoritmu "Erastotenovo síto" - viz např. http://www.progr.cz/Web.view.php

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   | 

jo, tohle mě taky napadlo - nevím, hledám jestli to nejde nějak líp, ale asi ne co?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   | 

Spravne je to "Eratostenovo sito", ne ?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   | 

Nevím jak moc "chytré" bude moje řešení, ale zkusím:
Vyrobit seznam všech prvočísel do 1000 (ať už sítem nebo jakkoliv jinak, třeba zkoumáním, zda jsou čísla 1-1000 dělitelná něčím jiným než 1 a sebou samým...)
Pak pro každé sudé číslo 2-1000 zjistit, jestli některý z rozdílů toho čísla a jednotlivých prvočísel do poloviny jeho velikosti je taky mezi prvočísly (vyhledávání v prvočíslech například půlením intervalu). Jestli u některého ze sudých čísel ani jedno ze zkoumaných prvočísel nesplnilo tento předpoklad, zkoumané číslo nelze sečíst ze dvou prvočísel a tvrzení neplatí.
 

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   | 

Další řešení: kdyz už mám vyřešeno zkoumání jestli dané číslo je prvočíslem (je dělitelný jen 1 a sebou samým), můžu místo hledání toho rozdílu v seznamu prvočísel prozkoumat přímo, jestli je to prvočíslo...

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   | 

Takže jsem to zkusil, našel jsem si svůj starý program, který zkoumal součet dělitelů daného čísla (kromě sebe sama) a použil jsem ho.
Takže: naplnil jsem si pole prvočísel do tisícovky a pro všechna sudá čísla 2-1000 jsem bral jedno prvočíslo za druhým a skončil jsem buď když jsem našel dvojici (číslo-prvočíslo) je taky prvočíslo (součet dělitelů toho rozdílu je 1) nebo když prvočíslo je větší než polovina zkoumaného čísla. V případě že se po skončení zkoumání nenašla ani jedna taková dvojice, nebylo třeba procházet zbývající čísla a předpoklad neplatí.
Prubnul jsem to do 20000 a je to hotový za prakticky zanedbatelný čas (pod 1s)... totiž skoro všechny ty sudé hodnoty se dají sečíst z více dvojic prvočísel takže nebylo zapotřebí zkoumat moc daleko (do 1000 bylo největší použité prvočíslo 47 u 556).
Tady máš pro kontrolu výstup testovacího programu.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   | 

Děkuji, kombinací všech postupů jsem to naprogramoval a program funguje.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   | 
 |   |  Linux AppleMAC-Safari 5.0

Vazne potrebuju pomoc

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 IE 11.0

mohu nabídnout jedno řešení

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: Matematický problém, Chytré řešení


Určitě si přečtěte

Je lepší hrát na PC, či na konzolích? Nebo jsou i jiné možnosti?

Je lepší hrát na PC, či na konzolích? Nebo jsou i jiné možnosti?

** Jaké jsou výhody a nevýhody hraní na počítači? ** Co mají společného a v čem se liší Xbox One, PS4 a Switch? ** Na čem hrát, když nemáte výkonné PC ani konzoli?

Lukáš Václavík | 124

WindowsFX: Nainstalujte to mamce a taťkovi. Ani nepoznají, že to je Linux

WindowsFX: Nainstalujte to mamce a taťkovi. Ani nepoznají, že to je Linux

** Po dvou měsících tu máme další linuxovou kopii ** Tentokrát jde o imitaci Desítek ** Sestavili ji brazilští geekové nad Ubuntu

Jakub Čížek | 135

Velká datová loupež. Proč mají disky nižší kapacitu, než uvádějí?

Velká datová loupež. Proč mají disky nižší kapacitu, než uvádějí?

** Na disk nikdy neuložíte tolik dat, jak tvrdí výrobce ** Ajťáci si vymysleli vlastní jednotky jako mebibajt ** Zmatky vznikají i kvůli různým výjimkám

Lukáš Václavík | 110

12 netradičních map České republiky, které jste ještě nikdy neviděli

12 netradičních map České republiky, které jste ještě nikdy neviděli

** Tušíte, kolik je u nás hřbitovů a jak jsou velké? ** Dokážete si představit mapu českých řek a potoků? ** Udělali jsme to všechno za vás nad daty ČÚZK

Jakub Čížek | 10

Deset kotev, které i v roce 2020 táhnou Android ke dnu

Deset kotev, které i v roce 2020 táhnou Android ke dnu

** Android existuje skoro 12 let a za tu dobu v mnoha směrech dospěl ** Dnes běží na sedmi z deseti telefonů, ale čemu za to vděčí? ** Našli jsme 10 kotev, které táhnou tento operační systém ke dnu

Karel Kilián | 169


Aktuální číslo časopisu Computer

Megatest: nejlepší notebooky do 20 000 Kč

Test 8 levných IP kamer

Jak vybrat bezdrátová sluchátka

Testujeme Android 11