|
|
|
Hódító / Queosia forum
http://queosia.com
http://hodito.hu
|
|
PC (hardver, szoftver, játékok stb.) Minden, ami számítógép. Kedvenc játékod megbeszélése, segítségkérés hardverügyben stb. |
12-14-2011, 16:48
|
Senior Member
|
|
Join Date: Oct 2006
Location: Veresegyház
Posts: 3,662
Activity: 0%
Longevity: 95%
|
|
Quote:
Originally Posted by Redback
2009/2010-es OKTV-ről két feladatra lennék kíváncsi :
1. Írj programot (jarda.pas, …), amely kiszámítja, hogy hány féleképpen lehet kikövezni egy 2*N egység méretű járdát 1*1 és 1*2 méretű lapokkal!
|
Nekem az jött ki, hogy ezt rekurzióval kell megcsinálni.
Ezután egy 2*N-es járdát úgy számolnék ki, hogy a vágósíkokat végigfuttatnám rajta.
Először felteszem, hogy 1+N-1 -re van szétvágva, aztán 2+N-2-re és így tovább.
A gond, hogy ezeket nem lehet összeadni, mert van közte átfedés.
De mindenképp úgy számolnék, hogy letenném a vágósíkokat minden lehetséges módon, aztán csak össze kell adogatni az eredményt.
Az egyes szétvágott daraboknak olyannak kell lennie, hogy belül már ne legyen vágósík. Ez akkor van, ha egy darab 1 széles (2elrendezés) vagy 2 széles (3 elrendezés) vagy 2x széles ekkor megint 2 elrendezés van.
Vagyis az N-et fel kell osztani minden lehetséges módon 1,2,4,6,8... összegére. A sorrend is számít.
De ezt leprogramozni nem tűnik vészesnek.
Például a 2x2-esnél ha nincs felosztva az 3 elrendezés, ha fel van, akkor még 2*2 és kijön a 7.
2x3-asnál 1+1+1 , 1+2, 2+1 a lehetséges sorrendek, szépek ki lehet számolni, hogy ez 2*2*2+2*3+3*2=20 lefedést jelent.
|
12-14-2011, 16:55
|
|
Member
|
|
Join Date: Jun 2007
Location: Nyíregyháza
Posts: 2,975
Activity: 0%
Longevity: 92%
|
|
Quote:
Originally Posted by Valezius
Nekem az jött ki, hogy ezt rekurzióval kell megcsinálni.
Ezután egy 2*N-es járdát úgy számolnék ki, hogy a vágósíkokat végigfuttatnám rajta.
Először felteszem, hogy 1+N-1 -re van szétvágva, aztán 2+N-2-re és így tovább.
A gond, hogy ezeket nem lehet összeadni, mert van közte átfedés.
De mindenképp úgy számolnék, hogy letenném a vágósíkokat minden lehetséges módon, aztán csak össze kell adogatni az eredményt.
Az egyes szétvágott daraboknak olyannak kell lennie, hogy belül már ne legyen vágósík. Ez akkor van, ha egy darab 1 széles (2elrendezés) vagy 2 széles (3 elrendezés) vagy 2x széles ekkor megint 2 elrendezés van.
Vagyis az N-et fel kell osztani minden lehetséges módon 1,2,4,6,8... összegére. A sorrend is számít.
De ezt leprogramozni nem tűnik vészesnek.
Például a 2x2-esnél ha nincs felosztva az 3 elrendezés, ha fel van, akkor még 2*2 és kijön a 7.
2x3-asnál 1+1+1 , 1+2, 2+1 a lehetséges sorrendek, szépek ki lehet számolni, hogy ez 2*2*2+2*3+3*2=20 lefedést jelent.
|
igen, így belegondolva tényleg igazad lehet
__________________
Redológia (#455305) [1/A] [SZK]
Non omnis moriar (#701164) [3/G]
|
12-14-2011, 17:07
|
Senior Member
|
|
Join Date: Jan 2008
Location: Tihany
Posts: 4,640
Activity: 0%
Longevity: 89%
|
|
Quote:
Originally Posted by Valezius
Nekem az jött ki, hogy ezt rekurzióval kell megcsinálni.
Ezután egy 2*N-es járdát úgy számolnék ki, hogy a vágósíkokat végigfuttatnám rajta.
Először felteszem, hogy 1+N-1 -re van szétvágva, aztán 2+N-2-re és így tovább.
A gond, hogy ezeket nem lehet összeadni, mert van közte átfedés.
De mindenképp úgy számolnék, hogy letenném a vágósíkokat minden lehetséges módon, aztán csak össze kell adogatni az eredményt.
Az egyes szétvágott daraboknak olyannak kell lennie, hogy belül már ne legyen vágósík. Ez akkor van, ha egy darab 1 széles (2elrendezés) vagy 2 széles (3 elrendezés) vagy 2x széles ekkor megint 2 elrendezés van.
Vagyis az N-et fel kell osztani minden lehetséges módon 1,2,4,6,8... összegére. A sorrend is számít.
De ezt leprogramozni nem tűnik vészesnek.
Például a 2x2-esnél ha nincs felosztva az 3 elrendezés, ha fel van, akkor még 2*2 és kijön a 7.
2x3-asnál 1+1+1 , 1+2, 2+1 a lehetséges sorrendek, szépek ki lehet számolni, hogy ez 2*2*2+2*3+3*2=20 lefedést jelent.
|
Így belegondolva tippem sincs, hogy mit jelent, amit írtál.
__________________
BorzalmakVárosa (#199867) 1/A Black Dragon (#3270)
|
12-14-2011, 17:15
|
Senior Member
|
|
Join Date: Oct 2006
Location: Veresegyház
Posts: 3,662
Activity: 0%
Longevity: 95%
|
|
Quote:
Originally Posted by vityu
Így belegondolva tippem sincs, hogy mit jelent, amit írtál.
|
Akkor most bajban lennék, ha te tetted volna föl az eredeti kérdést
|
The Following 3 Users Say Thank You to Valezius For This Useful Post:
|
|
12-14-2011, 17:51
|
|
Member
|
|
Join Date: Jun 2007
Location: Nyíregyháza
Posts: 2,975
Activity: 0%
Longevity: 92%
|
|
A 2x2-esnél milyen 3 elrendezésre gondolsz?
__________________
Redológia (#455305) [1/A] [SZK]
Non omnis moriar (#701164) [3/G]
|
12-14-2011, 18:38
|
Senior Member
|
|
Join Date: Oct 2006
Location: Veresegyház
Posts: 3,662
Activity: 0%
Longevity: 95%
|
|
Quote:
Originally Posted by Redback
A 2x2-esnél milyen 3 elrendezésre gondolsz?
|
Ha nincs benne függőleges vágósík, akkor lehet vízszintesen 2db kettes tégla.
Aztán vagy az alsó vagy a felső becserélhető egyesekre.
(Mindkettő nem, mert akkor mégis van benne vágósík.)
Egyébként mégse kell semmiféle rekurzió. Csak elkezdtem írni, aztán láttam, hogy nem teljesen jó, úgyhogy újra kellett gondolnom.
|
12-14-2011, 19:16
|
|
Member
|
|
Join Date: Jun 2007
Location: Nyíregyháza
Posts: 2,975
Activity: 0%
Longevity: 92%
|
|
Quote:
Originally Posted by Valezius
Ha nincs benne függőleges vágósík, akkor lehet vízszintesen 2db kettes tégla.
Aztán vagy az alsó vagy a felső becserélhető egyesekre.
(Mindkettő nem, mert akkor mégis van benne vágósík.)
Egyébként mégse kell semmiféle rekurzió. Csak elkezdtem írni, aztán láttam, hogy nem teljesen jó, úgyhogy újra kellett gondolnom.
|
Az nem volt tiszta, hogy a vágósík csak függőleges lehet, de mostmár stimm Köszi szépen Vale
__________________
Redológia (#455305) [1/A] [SZK]
Non omnis moriar (#701164) [3/G]
|
12-23-2011, 10:18
|
Junior Member
|
|
Join Date: Mar 2011
Posts: 47
Activity: 0%
Longevity: 72%
|
|
A második feladat cseles
Amiből kiindultam, hogy a gépeknek minimum szum(A műveletek időigénye) ill. szum(B műveletek időigénye) ideig dolgoznak, ezen nincs mit faragni. Az egyetlen lehetőségünk a minimalizálásra a gépek üresjáratának csökkentése.
Vegyünk egy olyan elemet, ahol A kicsi, B nagy. Ha az első gép A-val végez, mehet B-re, ahol sok időt fog tölteni, ezalatt egy másik terméken is elvégezhetjük A lépést, majd várólistára tehetjük, hogy a második gép rögtön tudjon tovább dolgozni.
Amire kell figyelni, hogy az első x elem A műveletidejének összege ne haladja meg a B műveletidők összegét (mínusz az első elem A ideje, ennyi előnyt kap az első gép), így nem kell a második gépnek az elsőre várakozni.
Ha az adatok olyanra sikerülnek, nyilván valóan akadni fog üresjárat, ezt úgy tudjuk minimalizálni, ha az input elemeket B idő-A idő szerint csökkenő sorrendbe tesszük (ezáltal az elején sok A lépéssel végzett elemet felhalmozunk, a második gép folyamatosan dolgozik)
Ettől már csak egy lépés a tökéletes megoldás, meg kell találni azt az első elemet, amelynél B-A kellőpen nagy, hogy utána mindig legyen legalább egy elem, amin A-t már befejeztük, de a második gépre még várnia kell, viszont ugyanakkor, A ideje ne legyen túl nagy, hogy a második gép is minél előbb dolgozni tudjon. Az ideális, ha az első elemnél A ideje 1, B pedig elég nagy ahhoz, hogy más (szintén B>A tulajdonságú) elemen elvégezzük az első lépést, és várakozzon a másodikra.
|
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
|
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT +1. The time now is 21:30.
|
|
|
|
|
|
|