Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 11. 10. 2022 11:51

Mark02
Zelenáč
Příspěvky: 2
Reputace:   
 

Skladanie čisla

Potrebujem vytovoriť program který načte řetězec cifer na první řádce a celé číslo N na řádce druhé. Program vloží znaky +, * mezi zadané cifry tak, aby hodnota vytvořeného výrazu byla N
napr. vstup: 857051
                  20
        vystup: 8+5+7+0*5*1
alebo
vstup: 98706543
          103
vystup: 9+87+0*65+4+3

Offline

 

#2 11. 10. 2022 17:08 — Editoval check_drummer (11. 10. 2022 17:09)

check_drummer
Příspěvky: 4939
Reputace:   106 
 

Re: Skladanie čisla

Ahoj, teoreticky to lze udělat zkoušením všech možností, prakticky bude mít ten výpočet velkou časovou složitost. A obávám se že nic rychlého nepůjde, ale třeba ano...
Prostě mezi každé dvě číslice můžeš vložit jednu ze dvou operací nebo nic.


"Máte úhel beta." "No to nemám."

Offline

 

#3 11. 10. 2022 20:53 — Editoval osman (11. 10. 2022 20:57)

osman
Příspěvky: 224
Pozice: v.v.
Reputace:   
 

Re: Skladanie čisla

Ahoj, řekl bych, že při použití hrubé síly bude pro [mathjax]n[/mathjax] cifer na vstupu zapotřebí [mathjax]3^{n-1}[/mathjax] kroků výpočtu (pro větší počet cifer neřešitelné).
Když nám bude stačit první správné řešení, asi skončíme dřív. Pokud budeme chtít všechna řešení, musíme pokračovat do hořkého konce.
Když úloha nemá řešení, asi budeme muset spočítat taky všechno.

Další zkracování výpočtů bude asi záviset na zadané hodnotě výsledku [mathjax]N[/mathjax].

Např.:
1. Protože známe nejmenší a největší možnou hodnotu výsledku,úloha nemá řešení, když je [mathjax]N[/mathjax] mimo tyto meze. (Které to jsou?)

2.Protože známe [mathjax]N[/mathjax], můžeme každý krok výpočtu zabrzdit po dosažení [mathjax]N[/mathjax] - zůstává stejný počet kroků

3. Když je [mathjax]N[/mathjax] čtyřciferné, nebudeme sčítat větší než čtyřciferné skupiny- snižuje se počet kroků

atd.

Nevím nevím, jestli se to dá nějakou fintou zásadně zjednodušit...


Hlavní je zápal, talent se dostaví!

Offline

 

#4 12. 10. 2022 15:15

MichalAld
Moderátor
Příspěvky: 5071
Reputace:   126 
 

Re: Skladanie čisla

↑ osman:
Asi nedá. Obecně to má exponenciální složitost, a lehce mi to připomíná hledání vhodného řešení logického výrazu - což je NP-úplný problém.

Na druhou stranu, pokud těch číslic bude jen pár (jako třeba do 10), tak asi není problém to na počítači řešit. Předpokládám, že jde o úlohy "z matematických olympiád", a že není záměr řešit zadání, co tam má 60 číslic.

Offline

 

#5 12. 10. 2022 22:59

check_drummer
Příspěvky: 4939
Reputace:   106 
 

Re: Skladanie čisla

Jen pozor na to násobení 0 - to je jediný případ, kdy se mezivýpočet sníží a tak může některé heuristiky nabourat.


"Máte úhel beta." "No to nemám."

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson