- Android szakmai topik
- Szerkesztett és makrofotók mobillal
- Samsung Galaxy Watch7 - kötelező kör
- Milyen okostelefont vegyek?
- QWERTY billentyűzet és másodlagos kijelző is lesz a Titan 2-ben
- Samsung Galaxy A36 5G - a középső testvér
- Feljutott a G96 a Moto széria csúcsára
- Samsung Galaxy S23 Ultra - non plus ultra
- Honor Magic5 Pro - kamerák bűvöletében
- iPhone topik
Új hozzászólás Aktív témák
-
MaUser
addikt
válasz
robotjatek #2047 üzenetére
Annyit fűznék csak hozzá, hogy minden ilyen esetben a probléma a sparse array problémája. Legjobban olvasható megoldás a 2 dimenzió look-up tömb használata (ahol az indexek a koordináták és az elemek az emberek sorszáma), de ha nagy a világ és kevés benne az ember, akkor list-be illik felfűzni az emberek sorszámát és aktuális pozíciójukat tároló object-eket, majd a listát bejárva azt frissítgetni.
-
martonx
veterán
válasz
robotjatek #2047 üzenetére
csinálsz egy kétdimenziós boolean tömböt, amiben nyilvántartod, hogy melyik objektum, éppen hol van. Ahol van, azt 1-el jelölöd, ahol senki nincs azt nullával. Amikor átlép az objektum egyik mezőről a másikra, akkor ellenőrzöd az ütközést, átfrissíted a tömb két elemét.
-
fatal`
titán
válasz
robotjatek #2047 üzenetére
Létrehozáskor végigmész a tömbön/listán, amiben a többi objektum van és ellenőrzöd.
-
robotjatek
tag
Sziasztok! Lenne egy nagyon egyszerű kérdésem az objektumokkal kapcsolatban.
Legyen egy világ, benne sok objektummal, a példa kedvéért legyenek ők mondjuk "Emberek". Ezek az emberek élik a saját kis életüket, most random sétálgatnak. Mondjuk jelenítsük meg a helyzetüket egy konzol ablakban, de ez a feladat szempontjából igazából most lényegtelen.
A kérdés: Hogy lehet elegánsan megoldani azt, hogy ugyanarra a koordinátára ne léphessen két "ember"? Tehát, ha mondjuk a (13;14) ponton van már egy objektum, akkor lépjen máshova. -
Alkimista
csendes tag
válasz
kingabo #1992 üzenetére
Először is köszi a választ.
Nem meggyőzni akartalak csak a problémára megoldási javaslatot
Sajna nem mondhatom meg egy cégnek sem, hogy holnaptól sql servert vagy éppen orclet használjon, még csak azt sem hogy ezek melyik verzióját. Legtöbb helyen SQL server 2000 van és nem is tervezik hogy más verzió bevezetését.
Nem egy cégnél van 2 fajta adatbázis hanem cégenként eltérő. Nem én találtam ki ezt a megoldást, csak örököltem a problémát.
Bocs hogy nem fogalmaztam egyértelműen, szép napot.
-
tamas60
csendes tag
Kellene egy olyan program ami nagy négyzetbe optimálisan el tudna helyezni adatbázisban szereplő kis négyzeteket. A programot C++ ban kellene megírni.
Akit érdekel a téma keressen meg.
Ha nem jó helyre írtam bocsánat, és kérnék egy tippet hol van ennek a kérésnek helye. -
amargo
addikt
Ha már így license kérdések vannak, akkor a VSProwMSDN ALNG LicSAPk OLP NL Qlfd esetén miket rakhatok fel? Kimondottan az Expression blend érdekelne.. vagy ezt is meg kell venni?
-
Lortech
addikt
válasz
takyka77 #2035 üzenetére
hali.
Idézet az EULA-ból:
[...]
1. OVERVIEW.a. Software. The software includes development tools, software programs and documentation.
b. License Model. The software is licensed on a per user basis.
2. INSTALLATION AND USE RIGHTS.
a. General. One user may install and use copies of the software to design, develop, test and demonstrate your programs. You may not use the software on a server in a production environment.
[...]Ebből én azt szűröm le, hogy szerver gépet leszámítva akárhány gép(ed)re felinstallálhatod, de csak te használhatod értelemszerűen.
-
takyka77
tag
Sziasztok!
Azt szeretném kérdezni, hogy a Visual Studio 2010. Professional változatot hány gépen tudom használni, ha megvásárolom? -
bpx
őstag
csak hogy kötözködjek egy picit
static void Main(string[] args)
{
long a;
long start1 = DateTime.Now.Ticks;
for (long i = 0; i < 20000000000;)
a = i++;
DateTime dt = new DateTime(DateTime.Now.Ticks - start1);
Console.WriteLine("i++ : {0} sec, {1} ticks", dt.Second, dt.Ticks);
long start2 = DateTime.Now.Ticks;
for (long i = 0; i < 20000000000; )
a = ++i;
dt = new DateTime(DateTime.Now.Ticks - start2);
Console.WriteLine("++i : {0} sec, {1} ticks", dt.Second, dt.Ticks);
Console.ReadLine();
}i++ : 51 sec, 519749728 ticks
++i : 49 sec, 492008142 ticks
i++ : 52 sec, 521009800 ticks
++i : 49 sec, 492998197 ticks
i++ : 52 sec, 520389764 ticks
++i : 49 sec, 493708238 ticksakárhányszor futtatom, megvan a 2,6-2,7 mp körüli különbség
a másodiknál assembly-ben kevesebb a mov
-
#90999040
törölt tag
válasz
#90999040 #2027 üzenetére
Jó volt a meglátásom. Megnéztem assembly-ben a kódokat. Íme:
A ciklus0(); :
.method private hidebysig instance void ciklus0() cil managed
{
// Code size 8 (0x8)
.maxstack 2
.locals init ([0] int32 i)
IL_0000: nop
IL_0001: ldc.i4.0
IL_0002: stloc.0
IL_0003: ldloc.0
IL_0004: ldc.i4.1
IL_0005: add
IL_0006: stloc.0
IL_0007: ret
} // end of method Form1::ciklus0A ciklus1(); :
.method private hidebysig instance void ciklus1() cil managed
{
// Code size 8 (0x8)
.maxstack 2
.locals init ([0] int32 i)
IL_0000: nop
IL_0001: ldc.i4.0
IL_0002: stloc.0
IL_0003: ldloc.0
IL_0004: ldc.i4.1
IL_0005: add
IL_0006: stloc.0
IL_0007: ret
} // end of method Form1::ciklus1 -
#90999040
törölt tag
válasz
kingabo #2024 üzenetére
Jó, csak, hogy objektív eredményt kapjak, ahhoz elég sok folyamatot le kell állítani.
Az előző tesztnél is 1 milló Button-nál a lapozófájl mérete 406 milló bájttal növekedett és a teszt alatt a proci 100%-on ment.De azért ezt is leteszteltem.
void ciklus0()
{
int i = 0;
i++;
}
void ciklus1()
{
int i = 0;
++i;
}
Ezeket hívtam meg 100 millószor. Az eredmény:
120,815924676848 sec. a ciklus0-ra és
120,841825454048 sec a ciklus1-re
az eltérés 0,020 %, tehát nagyon minimális.
Egyébként a tesztelő programot elteszem, mert még máskor is jól jöhet, de mondjuk sűrűn nem használom a proci terhelése miatt. -
#90999040
törölt tag
válasz
kingabo #2012 üzenetére
Volt egy kis időm, így sikerült leellenőriznem. Pont az ellenkezője jött ki, mint amire számítottam. Az eltérés -3 / +3 % volt a 2 között. A foreach azonban kis méretű tömbnél és/vagy kevés hívás esetén volt gyorsabb, nagy méretű tömb és/vagy sokszori hívás esetén pedig a for volt gyorsabb. Az eltérés azonban mindkét esetben minimális volt. Mondjuk 1 millós tömb és 1000-szeri meghívás esetén 0,4 másodperc volt az eltérés a for javára.
shev7 és -Zeratul- : igazatok van, ezt benéztem.
Mindenesetre az is érdekes, hogy az equals itt is csak akkor haszálható, ha előtte "=" (tehát értékadással) lett a 2 button egyenlővé téve.
-
Lortech
addikt
Mondjuk itt elég nagyvonalú, amikor collectionst említ, mikor kb. az indexerrel rendelkezőkre gondol. Mi van például egy linkedlisttel, stackkel, queue-val for esetén.. Én nem állnék neki kézzel iterálni ezeket, inkább foreach / getEnumerator, többet ér egy olvasható kód, mint 10 milliszekundum.
Fordítva is igaz, ha index is kell, akkor meg inkább for, ha van indexere a típusnak, ha meg nincs, úgyis csúnya lesz. -
bpx
őstag
válasz
#90999040 #2008 üzenetére
"A név szerinti keresés szerintem gyorsabb. De ha ez nem lehetséges, akkor a for helyett a foreach talán gyorsabb."
majd az általad linkelt cikkben:
"Therefore, I strongly feel if you are planning to write high performance code that is not for collections, use for loop. Even for collections, foreach may look handy when using, but it's not that efficient. Therefore, I strongly recommend everyone to use for loop rather than foreach at any stage."
-
fatal`
titán
-
fatal`
titán
válasz
#90999040 #2008 üzenetére
Ez rendben van csak te bevezettél még egy i változót, itt meg nem azt csinálja.
Mondjuk gondolom én nincsen 120 000 gombja így a sebességkülönbség majdhogynem elhanyagolható és sokkal szebb a kód a sima forral, mint a plusz változóval, amit külön kell kezelni.
De egyébként az egész úgy is kuka, mert névre keres akkor sima foreach.
-
#90999040
törölt tag
-
kingabo
őstag
válasz
[pod]Diablo #1999 üzenetére
Ha pl egy groupbox-ot használsz amibe csak a gombok vannak, akkor így is megkapod a sorszámát a gombnak:
int sorSzam = groupBox1.Controls.IndexOf((Control)sender);
A sorrendet a gb-hez való hozzáadás fogja jelenteni. (ha kódból pakolod bele, akkor a korábbinak lesz a kisebb sorszáma, ha az összehúzogatós felületen raktad össze a gui-t, akkor fordított)(#2002) hunfatal: folyamatosan növel egy i változót.
(#2005) emonitor: megelőztél. De ennek így mi értelme? Kell ehhez még egy plusz változó amit szintén karban kell tartanod... Ha azt kiveszed, akkor meg megkaptad a for-t.
-
fatal`
titán
válasz
martonx #2001 üzenetére
LOL hogy ez nem jutott eszembe, pedig régen én is ezt csináltam. De ott van még a tag property is, de ha jól látom azt már valami másra használja.
Esetleg ha nem akarja átnevezni őket, akkor kacifántosabban le lehet származtatni a buttonból egy osztályt, aminek csinál egy int propertyt erre a célra, és abban tárolja, hogy hanyadik elem a tömbben, így elég azt lekérdezni.
-
martonx
veterán
válasz
[pod]Diablo #1999 üzenetére
Mi lenne, ha a gombokat gomb1, gomb2, ... néven hívnád. Így gombnyomáskor a gomb nevéből meg tudod állapítani, hogy hanyadik elem.
Új hozzászólás Aktív témák
Hirdetés
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Samsung C27RG50FQU 27 Ívelt Gaming Monitor
- Xbox Series S + twin docking station (venom) + 2 db kontroller +1 db Ghost Cipher Special kontroller
- ÚJ AMD Ryzen 5 5600X BOX AM4 6/12 magos CPU - bontatlan
- L14 Gen5 14" FHD+ IPS Ultra 7 155U 16GB 512GB NVMe ujjlolv IR kam gar
- Kezdőknek legjobb választás: 4 GHz AMD 5400U, 4 mag / 8 szál barebone
- Telefon felvásárlás!! Samsung Galaxy A12/Samsung Galaxy A22/Samsung Galaxy A32/Samsung Galaxy A52
- Felújított szerverek, storage-ok, hálózati eszközök Enterprise szinten, minden gyártótól
- Azonnali készpénzes AMD Radeon RX 6000 sorozat videokártya felvásárlás személyesen/csomagküldéssel
- Honor Magic7 Lite 256GB, Kártyafüggetlen, 1 Év Garanciával
- Felújított laptopok Számlával, garanciával! Ingyen Foxpost!
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest