- sziku69: Fűzzük össze a szavakat :)
- sziku69: Szólánc.
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Luck Dragon: Asszociációs játék. :)
- moha bácsi: VIII. Viharsarki Hobbi Elektronika Találkozó Békéscsaba 2025.06.14. szombat
- hcl: Döglött tabletből wifis kijelző kókány
- gerner1
- Elektromos rásegítésű kerékpárok
- gban: Ingyen kellene, de tegnapra
- Ismerkedés a Zyxel NSA325 v2-vel
Új hozzászólás Aktív témák
-
Keem1
veterán
-
joysefke
veterán
válasz
Jester01 #7895 üzenetére
Nem tudom hogy akarod utána használni, de egy sor/oszlop index ami megmondja hogy az i. sor/oszlop az fizikailag melyik sor/oszlop az viszonylag egyszerű törlést tesz lehetővé.
Hmm...
most jobban belegondolva megfontolom:
Egy 4000x3000 elemű List<List<>> előállításánál elmegy egyszer 300ms, utána minden egyes sor segédlistákból való törlésénél elmegy még sor-törlésenként egyszer 6-8ms (de ez mondjuk 1000x is megtörténhet). Lehet tényleg előrébb tartanék egy index-fordító táblázattal, kérdés, hogy a statikus tömbök rugalmatlansága mennyi plusz futásidőt eredményezne, elvinné-e a megtakarítást.
-
joysefke
veterán
válasz
Jester01 #7895 üzenetére
Számon tartok egy gradiens táblázatot is, amely az egyes képpontok szomszédainak eltérőségét adja meg.
valueMap[x][y] = sqrtLookup[
sqr[Math.Abs((pixelList[modKadder(x, 1,width)][y].R - pixelList[modKadder(x, -1, width)][y].R))]
+ sqr[Math.Abs((pixelList[modKadder(x, 1, width)][y].G - pixelList[modKadder(x, -1, width)][y].G))]
+ sqr[Math.Abs((pixelList[modKadder(x, 1, width)][y].B - pixelList[modKadder(x, -1, width)][y].B))]
//+ sqr[Math.Abs((pixelList[modKadder(x,1,width)][y].A - pixelList[modKadder(x,-1,width)][y].A))]
+ sqr[Math.Abs((pixelList[x][modKadder(y, 1, height)].R - pixelList[x][modKadder(y, -1, height)].R))]
+ sqr[Math.Abs((pixelList[x][modKadder(y, 1, height)].G - pixelList[x][modKadder(y, -1, height)].G))]
+ sqr[Math.Abs((pixelList[x][modKadder(y, 1, height)].B - pixelList[x][modKadder(y, -1, height)].B))]
//+ sqr[Math.Abs((pixelList[x][modKadder(y, 1, height)].A - pixelList[x][modKadder(y, -1, height)].A))]
];minden Pixelpozícióra ki van számolva a gradiensfüggvény arra a pontra. Amikor egy képpont kiesik, akkor a szomszédainak (akik esetleg bentmaradnak) megváltoznak a szomszédai, tehát a gradienstáblázatot is updatelni kell azokban a pixelpozíciókban, ahol változás történt.
egy sor vagy oszlopnyi pixel fizikai (vagy logikai) törlése nagyságrendileg 4000 pixel törlését és 8000 pixelnyi gradiens újraszámítást igényel. Ha 1000 sort veszel ki, akkor mindezt 1000x. A gradiens újraszámítás pedig igényi, hogy gyorsan el tudd dönteni, hogy egy pixelnek kik a szomszédai. Nem rakhatok bonyolult logikát a ki-kinek a szomszédja meghatározásába.
-
Jester01
veterán
válasz
Jester01 #7888 üzenetére
Aha, kétféle GC közül lehet választani, a másik az jobb
Sequential :48ms, count = 3840
Creating 64 sublists in parallel took: 55 ms
Concat of 64 Lists took :2 ms, count: 3840Ha adok neki többet:
Sequential :232ms, count = 19200
Creating 64 sublists in parallel took: 239 ms
Concat of 64 Lists took :3 ms, count: 19200Ez meg nem gyorsul egyáltalán, a lista allokáció az lehet, hogy lockol a háttérben.
-
joysefke
veterán
válasz
Jester01 #7885 üzenetére
Egyébként attól eltekintve, hogy nálad legalább gyorsul, a Mono (még nem próbáltam) ezek szerint valami iszonyat optimalizálatlan kódot készít:
nekem Windowson egy négymagos géppel ca 280ms, függetlenül attól,
hogyan erőlködöm a párhuzamosítással. A procim egy szálon sem erősebb a tiednél. -
joysefke
veterán
válasz
Jester01 #7885 üzenetére
Köszi hogy kipróbáltad!
ez ugye a párhuzamos eredménye:
var cList = result.ToList();
Tehát a cList változó.
Elképzelhető, hogy a Mono fordítója észreveszi, hogy a cList semmire sincsen használva, az előtte lévő Concat függvénynek meg ugye a taskoknak sincsenek mellékhatásai, ezért a cList kiszámításához vezető utat kioptimalizálja (= ki sem számítja)?
SZERK:
Nálad valahogy iszonyat jól gyorsul: 796ms x 64 = 51sec az alig több mint a 46sec.De ennyit nem szabadna sehogy sem gyorsulnia, én ugye a Taskok számát a logikai procimagok száma x 4-re vettem. A max gyorsulás amit várnék az a logikai procimagok arányában lenne (nálam 4, nálad 16(????))
-
scarbantia
aktív tag
válasz
Jester01 #7863 üzenetére
Soha nem paramétereztem exe-t, de most futtatásba beírtam az elérési utat és a paramétereket, működik!
Kösz, Viszont a parancssor így nyitva marad, illetve azt szeretném elérni, hogy az indítópultba téve (win7), paraméterezve induljon el automatikusan, és csukja is be maga után a parancssort.
-
scarbantia
aktív tag
válasz
Jester01 #7861 üzenetére
Bocs, a lényeg kimaradt, ha futtatom a konzolt, akkor egy pillanatra megnyílik a parancssor, de kb. azonnal be is zárja, még ctrl+s-el se nagyon tudtam megállítani. Azt ki tudtam hámozni, hogy kiírja, 600hz-en fut, és tényleg, onnantól kezdve csökken a vibrálás. Viszont hol adom meg a paramétert?
Én csak az exe-ket szedtem le. Kellene valamelyik .cs fájl, amit átírok?
-
Karma
félisten
-
-
Karma
félisten
válasz
Jester01 #6934 üzenetére
Azért azt is vedd hozzá, hogy az eredeti kérdés számpárokat akart Tárolni. Arra egy kettes Tuple vagy a KeyValuePair bőven elég, nem gondolom hogy annyira indokolt lenne az új osztály bevezetése, ha logika nem tartozik hozzá.
Egy hetes Tuple már tényleg téboly viszont.
-
Dilikutya
félisten
válasz
Jester01 #6360 üzenetére
Valami nem kerek valahol, egyelőre ezt a részét félreteszem. Most előbb adjunk hozzá az adatbázishoz lekérdeznivalót. Fel van töltve kezdő adatokkal, ez egyik tábla kulcsmezői 1-8 értékekkel kezdődnek. Hozzáadok egy új elemet, az megkapja a kulcsnak a 0-át. Hozzáadok még egy elemet, és hibát dob.
A SelectedIndex-nek kéne szerintem jól megadni valamit. -
Jester01
veterán
válasz
Jester01 #6358 üzenetére
Akkor cseréld fel, ha úgy akarja ...
var query = from s in model.Movies
join genre in model.Genres on s.Genre_Id equals genre.Genre_Id
join director in model.Directors on s.DirectorId equals director.DirectorId
select new
{
Title = s.Title,
Release_year = s.Release_year,
Director = director.Director,
Genre = genre.Genre
}; -
Dinter
addikt
válasz
Jester01 #6148 üzenetére
Köszi, ez lesz az.
(#6149) kingabo: láttam már azt a megoldást is, tényleg egyszerűbb, csak ahogy most keresgéltem, az egyikben sem szerepelt
Mondjuk így ha belegondolok, nem az lenne a logikus, hogy az első ReadLine után a második while ciklussal mégegyszer beolvassa az első sort (mert egyébként nem, így jó), vagy csak az én hülyeségem?
-
Goose-T
veterán
válasz
Jester01 #6126 üzenetére
Az a jagged array egészen pontosan.
-
Jester01
veterán
válasz
Jester01 #6106 üzenetére
Ha tudnál konkrétummal szolgálni, röviden mit kellene pontosan cserélni a fentebb belinkelt programom végén, azt megköszönöm.
A Main első sora elé szúrd be, hogy while(true) { és a kapcsoszárójelet zárd be a ReadLine után. Ezzel a program végtelen ciklusban fog futni. Ha jól értettem a kérdést akkor ezt akartad.
-
zuzu000
őstag
válasz
Jester01 #6080 üzenetére
Igaz, igaz, ott a pont! Így már megy, köszi
Szerk.: ez még mindig a beadandó feladatomhoz kell, és tegnap utánaolvasva kiderült, hogy a tanár nem gondolta át egészen. A feladat az, hogy adott egy T szöveg. Keressünk meg azt a legrövidebb X szót, melyre igaz, hogy T minden szava részsorozata X-nek. Részsorozat az, hogyha a karaktereinek törlésével előállítható, a sorrendet figyelembe véve.
Pl: A = "abba" B = "aa", akkor B részsorozata A-nak.
Ahogy néztem ez lenne a Shortest Common Supersequence, amire jelenleg nincs olyan kód (n szavú szövegre), mely ésszerű időn belül lefutna. Ti mit tudtok erről? -
zuzu000
őstag
válasz
Jester01 #6078 üzenetére
De ez 3-at adna vissza b-re, nem? Azt akartam, hogy maximum hányszor fordul elő, tehát ha 'a' már volt az első szóban, és a másodikban is csak egyszer van, akkor ne növelje az értéket. Ha 'b' egyszer van az első szóban és 2x a másodikban, akkor 2 legyen a mimennyi megfelelő eleme. Vagyis csak akkor növelje a mimennyi[i2]-t, ha többet talál a következő szóban, mint amennyi már eddig van.
-
Karma
félisten
válasz
Jester01 #5548 üzenetére
Dehát wrapperből indult ki az egész feladat, semmi értelme átrakni egy másikba...
zsambek:
A Dictionarynek van egy ContainsKey metódusa, ami true-t ad vissza, ha van benne ilyen kulcs.
Például így, ami nem a legszebb, de szerintem érthető mit csinál:
if (eredmenyek.ContainsKey(teszt))
{
eredmenyek[teszt] ++;
}
else
{
eredmenyek[teszt] = 1; -
Karma
félisten
válasz
Jester01 #5544 üzenetére
A konkrét feladat ismeretében szerintem nincs gond a stringgel, hiszen egészen addig a pontig két intről van szó egy structban, amiket csoportosítási feltételnek kell felhasználni meg formázottan kiírni.
Ehhez még vegyük hozzá, hogy a Tuple megint egy új típus lenne, amit zsambeknak meg kéne ismernie két nappal az érettségi előtt.
Egyébként meg LINQ-kel egy sorban meg lehetne írni az egész feladatot, de nem ez volt a kérdés.
-
-
nolika
senior tag
válasz
Jester01 #4840 üzenetére
A gond az, hogy a IO::SOCKET perl modul IPv6 nem működik rendesen Windows alatt. Tudattam a fejlesztővel is. Tehát nem nyit socketet Windows alatt. Épp ezért most virtuális linux-al tesztelem.
Windows alatt fejlesztenék, mert valószínűleg ez tovább fejlődhet a jövőben, további célokat szolgálhat.A kérdés az, hogy maga az állapotokat egy táblázat színezgetésével megoldható? Vagy van C#-ban ennél szebb megoldás?
Illetve maga a színezgetést hogyan állítom be? Ugye ezt PERL-ben egy új labelt kellett pakolni az adott táblázat helyére. -
#51177472
törölt tag
válasz
Jester01 #4798 üzenetére
Ehhez visszatérve lenne az a kérdésem, hogy a számlálónak ha beállítom hogy a +1 legyen, akkor 1-et ad másodpercenként, ha 15 akkor 15-öt, minden egész számmal.
Viszont én azt szeretném, hogy 0.5-öt adjon másodpercenként (így 0,5 aztán 1, aztán 1,5 aztán 2, stb. növekedne). Írtátok, hogy ez X/2, de ha átírom a +1et 1/2-re, akkor nem működik. Tudtok segíteni? -
Jester01
veterán
válasz
Jester01 #4797 üzenetére
using System;
using System.Windows.Forms;
public class MainForm : Form
{
private Label _label;
private Timer _timer;
private double _counter;
static public void Main ()
{
Application.Run (new MainForm ());
}
MainForm ()
{
_label = new Label();
Controls.Add(_label);
_timer = new Timer();
_timer.Interval = 100;
_timer.Tick += TimerTick;
_timer.Start();
}
void TimerTick(object sender, EventArgs args)
{
_counter += 0.1;
_label.Text = _counter.ToString("0.0");
}
} -
metrion
aktív tag
válasz
Jester01 #4755 üzenetére
Köszi, de nem jó. :S
Amúgy ez a DrawStripe ez csak a függvény fantázianeve?
namespace magyar_zaszlo
{
class Program
{
static void Main(string[] args)
{
int kszelesseg = (Console.WindowWidth / 2);
int kmagassag = (Console.WindowHeight / 2);
Console.SetCursorPosition(kszelesseg, kmagassag);
DrawStripe(kszelesseg, kmagassag, ConsoleColor.Red);
DrawStripe(kszelesseg, kmagassag + 3, ConsoleColor.White);
DrawStripe(kszelesseg, kmagassag + 6, ConsoleColor.Green);
}
static void DrawStripe(int x, int y, ConsoleColor color)
{
Console.BackgroundColor = color;
for (int i = 0; i < 3; i += 1)
{
Console.SetCursorPosition(x, y + i);
for (int j = 0; j < 40; j += 1)
{
Console.Write(' ');
}
}
Console.ReadKey();
}
}
} -
Karma
félisten
válasz
Jester01 #4740 üzenetére
Ilyet éltem már én is; ettől függetlenül szerintem megvan a maga megérdemelt helye az eszköztárban, mert az se ritka, hogy valami regexben kapásból olvasható, száz-ezer sor imperatív kódban meg nem.
(#4742) peter9228: A 48 valójában a '0' karakter ASCII kódja, a Convert.ToInt32 meg teszi a dolgát, és a karakterből ezt állítja elő a char típusból. Használj valami mást a számmá konvertáláshoz, vagy mondjuk használd ki, hogy az ASCII kódból egy egyszerű kivonással (48) megkapod a számjegy értékét.
Amúgy meg StreamReadert csak és kizárólag using blokkal együtt használj, plz!
-
-
Karma
félisten
válasz
Jester01 #4734 üzenetére
Milyen más módon mennél neki a regexen kívül?
Önerőből lehet, hogy én egy korutint írnék rá ami egyszer iterál végig a stringen, figyeli a relációs jeleket, és azok alapján adja vissza a substringeket. De egy kicsit merengve rajta az ehhez kellő állapotgép ekvivalens egy egyszerű regexszel.
-
Karma
félisten
válasz
Jester01 #4624 üzenetére
Szerintem helyzetfüggő, lehet hogy ilyen esetben a fél eredmény a cél.
Mondjuk a hibakezelés egyik esetben se merülne ki ennyiben. Azért kár try-catchbe tenni, hogy utána szó nélkül lenyelje a kivételt; mint ahogy ha esetleg nem találkozott a TryParse-szal, minden egyes hívást külön try blokkba rakjon. Az előbbire tömegesen, de azért az utóbbira is láttam már példát.
-
kkdesign
senior tag
válasz
Jester01 #3985 üzenetére
elvetettem a tömbös megoldást, de most sem jutok el odáig, mi lehet a hiba. Nem tudom, hogy hogyan kell itt helyesen elhelyezni működőre a 2 számot
static void Main(string[] args)
{
double szam1=64;
double szam2=32;
Szamolo szObj = new Szamolo(szam1, szam2);
Console.WriteLine((double) szObj.Osszead(szam1, szam2)); // ide ad hibát: no overload for method readline takes 2 arguments
Console.ReadKey();
}
} -
-
-
Joci93
senior tag
válasz
Jester01 #3929 üzenetére
Pontosan valahol itt:
"A listában összegezze a sorokat, az oszlopokat és számítsa ki a főösszeget is.
Minden számot 10 széles mezőben 2 tizedesjeggyel írjon ki."vlevi: "Jó, tudom, hogy az a sorok és oszlopok száma" Igen, az az első két szám a sorok és oszlopok száma. Szerintem két külön szám vagy szívat a tanár xD
-
-
Des1gnR
őstag
válasz
Jester01 #3709 üzenetére
Az volt a gond, hogy nem szerettem volna, hogy elmenjen a default.aspx-re. Közben megoldódott a probléma ennek a linken a segítségével: http://forums.asp.net/t/1798530.aspx/1
Köszönöm a segítséget -
amargo
addikt
válasz
Jester01 #3446 üzenetére
"A GC belső működésére építeni szerintem elég szörnyű dolog" Ezzel egyetértünk, nem értem hol írtam az ellenkezőjét?
Szerintem meg elvárható, hogy valaki tudja, hogy miért használ using-ot és az IDisposable mire való és bizony tudja, hogy mi milyen költségekkel jár.Most már értem
A végén martonx megemlítette a GC működését is. Félre érthetően nem emeltem ki, melyik részére reagálok, meg igazából előtte olvastam el az előző HSZ-t is és valahogy összevontam. -
Cyno
tag
válasz
Jester01 #3380 üzenetére
Jogos.
A labelből olvasom ki a user nevét aki bejelentkezett, egy login formon(login form, user textbox-ából -> a mianForm egyik label-ébe).(Ezt a megoldást tudtam magamból kisajtolni)
És akkor most ott tartok, hogy ebből a labelből kellene kiolvasni a user nevét, hogy lássam van-e jogosultsága bizonyos tabPageket látni.Igazad van, elfelejtettem bekötni, de ötletem sincs, hogy mihez tudnám. A load-hoz nyilván nem.
Szerk.:
Rész siker.
VS-ből bekötöttem a focus_activated-hez.
Ez szép is lenne, de ez meg ugye állandóan meghívja. -
WonderCSabo
félisten
válasz
Jester01 #3329 üzenetére
Én mindjárt megnézem, ha VS elé kerülök. Én teljesen tisztán emlékszem arra, hogy felhasználói bezárás után exceptiont kaptam újbóli megnyitás miatt. Viszont most az télleg homályos, hogy WinForms vagy WPF alatt (ugyanazt az alkalmazást kellet megírnom mindkét felületen, ezért mosódik össze).
-
WonderCSabo
félisten
válasz
Jester01 #3207 üzenetére
Ez természetesen így van, de 10 db (vagy sokkal több) szám esetén 1-hez nagyon közeli valószínűséggel nagyon rövid idő alatt fut le. Én tesztelgettem ezt, és még sosem sikerült elhúzni az időt ezzel. Persze ha biztosra akarsz menni, akkor csinálsz egy láncolt listát 1-n-ig, megkevered őket, aztán random indexeket választasz és a választottad kiszeded a listából, csinálod ezt amíg üres nem lesz a lista.
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- sziku69: Fűzzük össze a szavakat :)
- Kezdő fotósok digitális fényképei
- Logitech Harmony - én irányítok mindent!
- A fociról könnyedén, egy baráti társaságban
- Nintendo Switch 2
- Gaming notebook topik
- Renault, Dacia topik
- Sony MILC fényképezőgépcsalád
- Samsung Galaxy S24 - nos, Exynos
- Óra topik
- További aktív témák...
- AKCIÓ!!! GAMER PC: Új i5-14400F (10 mag/16 szál) +RX 7800 XT 16GB GDDR6 +Új 16-32GB DDR4! GAR/SZÁMLA
- AKCIÓ!!! DDR5 GAMER PC: Új RYZEN 7 8700F + Új RTX 5060 Ti + Új 16-32GB DDR5! GARANCIA/SZÁMLA!
- Razer Book 13 4K+ TOUCH I7 eladó
- HP 2x8 Gb DDR4 2666 Mhz RAM
- Félgép eladó/ Intel i9 9900 / Asus Prime Z390-A / 64GB DDR4 / 500GB Samsung 980 /
- HATALMAS AKCIÓK / MICROSOFT WINDOWS 10,11 / OFFICE 16,19,21,24 / VÍRUS,VPN VÉDELEM / SZÁMLA / 0-24
- Samsung Galaxy A04 128GB, Kártyafüggetlen, 1 Év Garanciával
- Telefon felvásárlás!! iPhone 16/iPhone 16 Plus/iPhone 16 Pro/iPhone 16 Pro Max
- ÁRGARANCIA!Épített KomPhone Ryzen 5 4500 16/32/64GB RAM RTX 3050 6GB GAMER PC termékbeszámítással
- Xiaomi Redmi Note 10 Pro 128GB Kártyafüggetlen, 1Év Garanciával
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest