|
|
|
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, 20: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, 11: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.
|
05-17-2012, 22:42
|
|
Member
|
|
Join Date: Jun 2007
Location: Nyíregyháza
Posts: 2,975
Activity: 0%
Longevity: 92%
|
|
Egy kis segítségre lenne megint szükségem, most JAVA nyelv rejtelmeiben merül el. Agyhullám könyvsorozat JAVA könyvében találtam egy feladatot, a szövege a következő:
Quote:
Mit tehetsz, ha olyan osztályt szeretnél írni, amelyből csak EGY példány hozható létre, hogy mindenkinek, aki ebből az osztályból szeretne egy példányt, ezt az egy példányt kelljen használnia.
|
Ahogy gyakorikérdéseken felvilágosítottak, Singleton mintához hasonló megoldás nekem is eszembe jutott, DE! Úgy nem lehet megoldani, hogy úgy tudjunk példányosítani, mint bármely másik osztályt, tehát az általános
Singleton one = new Singleton();
módon. Valakinek valami ötlet?
__________________
Redológia (#455305) [1/A] [SZK]
Non omnis moriar (#701164) [3/G]
|
05-17-2012, 23:23
|
Junior Member
|
|
Join Date: Mar 2011
Posts: 47
Activity: 0%
Longevity: 72%
|
|
Nos, ha jól értem, olyan osztály kell, ami egy példányban szerepel max, és az sem példányosítás útján, erre a legegyszerűbb a statikus osztály szervezése. A singleton példában már látni, hogyan működne, egyszerűen minden metódus és mező statikus kell hogy legyen, így példány létrehozására nincs is szükség, a statikus szerkezet a típuson keresztül érhető el, persze kell egy metódus, ami konstruktorként funkcionál (ha nem a kódban vannak inicializálva az értékek)
a kérdés, hogy ki az a mindenki, aki használná ezt az osztályt, és hogyan?
|
05-17-2012, 23:37
|
|
Member
|
|
Join Date: Jun 2007
Location: Nyíregyháza
Posts: 2,975
Activity: 0%
Longevity: 92%
|
|
Quote:
Originally Posted by Cpt Balu
Nos, ha jól értem, olyan osztály kell, ami egy példányban szerepel max, és az sem példányosítás útján, erre a legegyszerűbb a statikus osztály szervezése. A singleton példában már látni, hogyan működne, egyszerűen minden metódus és mező statikus kell hogy legyen, így példány létrehozására nincs is szükség, a statikus szerkezet a típuson keresztül érhető el, persze kell egy metódus, ami konstruktorként funkcionál (ha nem a kódban vannak inicializálva az értékek)
a kérdés, hogy ki az a mindenki, aki használná ezt az osztályt, és hogyan?
|
Épp ez az, hogy példányosítás útján lehessen létrehozni az objektumot. Egy példa:
Quote:
TheClass one = new TheClass();
TheClass two = new TheClass();
|
Ekkor az lenne számomra a jó, hogy ha one és two ugyan arra az objektumra mutatna. Ezt meg lehet valahogy valósítani? Mondjuk most eszembe jutott valami, mindjárt ki is próbálom.
__________________
Redológia (#455305) [1/A] [SZK]
Non omnis moriar (#701164) [3/G]
|
05-17-2012, 23:56
|
Junior Member
|
|
Join Date: Mar 2011
Posts: 47
Activity: 0%
Longevity: 72%
|
|
na arra én is kíváncsi leszek a példányosítás definíciója szerint önálló entitást hoz létre, erre is utal a "new" kulcsszó, régi újat létrehozni nem lehet, elvben úgy lehetne megoldani, hogy egy statikus metódus visszaadja az egyetlen példány azonosítóját:
TheClass One = TheClass.GetTheOne();
TheClass Two = TheClass.GetTheOne();
csak kérdés, hogy mi is az amit ez a függvény visszaad? lehet egy statikus változó, de egyszer létre kell hozni ezt is, mondjuk egy másik statikus függvénnyel:
|
05-18-2012, 00:01
|
Junior Member
|
|
Join Date: Mar 2011
Posts: 47
Activity: 0%
Longevity: 72%
|
|
class TheClass
{
static TheClass TheOnlyOne;
public static TheClass GetTheOne()
{
return TheOnlyOne;
}
public static void CreateTheOne();
{
if([még nem létezik])
TheOnlyOne=new TheClass();
else
[már létezik];
}
private TheOne()<--privát konstruktor
{
[példányosítás];
}
}
|
05-18-2012, 00:06
|
Junior Member
|
|
Join Date: Mar 2011
Posts: 47
Activity: 0%
Longevity: 72%
|
|
Ha pedig mindenképp a hagyományos eljárás kell a példányosításra, akkor az egyetlen megoldás, hogy a mezők statikusak, a metódusok pedig nem, ilyenkor sok-sok különböző példány jön létre, de ha a metódusok hívásakor mindig ugyanazt a statikus adatot érik el, a látszat az lesz, hogy ugyanazt az objektumot használod :P
A new kulcsszó mindig új memóriaterületet foglal, tehát új példányt hoz létre, ezen változtatni nem lehet (kb olyan, mintha az összeadás jelet akarnád kivonásra használni, nem fog menni és kész)
|
The Following User Says Thank You to Cpt Balu For This Useful Post:
|
|
05-18-2012, 00:44
|
|
Member
|
|
Join Date: Jun 2007
Location: Nyíregyháza
Posts: 2,975
Activity: 0%
Longevity: 92%
|
|
Quote:
Originally Posted by Cpt Balu
Ha pedig mindenképp a hagyományos eljárás kell a példányosításra, akkor az egyetlen megoldás, hogy a mezők statikusak, a metódusok pedig nem, ilyenkor sok-sok különböző példány jön létre, de ha a metódusok hívásakor mindig ugyanazt a statikus adatot érik el, a látszat az lesz, hogy ugyanazt az objektumot használod :P
A new kulcsszó mindig új memóriaterületet foglal, tehát új példányt hoz létre, ezen változtatni nem lehet (kb olyan, mintha az összeadás jelet akarnád kivonásra használni, nem fog menni és kész)
|
Azt hiszem, ez teljesen kielégíti a tudásszomjamat. Köszönöm szépen!
__________________
Redológia (#455305) [1/A] [SZK]
Non omnis moriar (#701164) [3/G]
|
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 13:19.
|
|
|
|
|
|
|