Hirdetés
- Feháborodott az Apple, a Meta az iPhone-felhasználók üzeneteit akarja olvasgatni
- A luxusmárkáknak kell a bitcoin, az USA jegybankjának nem
- Letiltja az USA a politikusokat a telefonhívásokról és szöveges üzenetekről
- Nagy áttörés jön a napelemek piacán, nem kell annyi hely a paneleknek
- Belenyúlt az USA az Epic Games igazgatótanácsába, nyomoz az NVIDIA
Új hozzászólás Aktív témák
-
Goose-T
veterán
válasz Jester01 #7911 üzenetére
Stringbe kell deszerializálni a problémás adatokat, úgy már bármit lehet velük kezdeni. Nagy méretű XML fileoknál pedig nincs is más megoldás, csak a stream.
Eladó gitárok: https://tinyurl.com/yc7pawkr *** Rockbandám: https://fb.me/scharlotterhodes *** Gitárelektronikai műhelyem: https://www.fb.me/goosetgitar
-
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.
[ Szerkesztve ]
-
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.
[ Szerkesztve ]
-
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.
Jester
-
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.[ Szerkesztve ]
-
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(????))
[ Szerkesztve ]
-
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
válasz Jester01 #6938 üzenetére
Hát, igazából nekem sincs épkézláb öltetem rá De úgy gondolom, ha két (primitív) érték között nincs semmilyen kapcsolat azon kívül, hogy időben egyszerre kell őket használni, még nem vezetnék be hozzá külön osztályt. Mondjuk internal láthatóságnál kb. mindegy...
“All nothings are not equal.”
-
-
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.
[ Szerkesztve ]
“All nothings are not equal.”
-
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.Nem vagyok perverz, csak haladok a korral. (Még mindig: Rock&roll feeling baby, rock&roll feeling.....)
-
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
};[ Szerkesztve ]
Jester
-
Dilikutya
félisten
-
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.
Eladó gitárok: https://tinyurl.com/yc7pawkr *** Rockbandám: https://fb.me/scharlotterhodes *** Gitárelektronikai műhelyem: https://www.fb.me/goosetgitar
-
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.
Jester
-
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?[ Szerkesztve ]
-
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.
[ Szerkesztve ]
-
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;[ Szerkesztve ]
“All nothings are not equal.”
-
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.
[ Szerkesztve ]
“All nothings are not equal.”
-
-
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.[ Szerkesztve ]
-
#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");
}
}Jester
-
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!
[ Szerkesztve ]
“All nothings are not equal.”
-
pvt.peter
őstag
válasz Jester01 #4734 üzenetére
Jester01: Köszönöm szépen a választ. Pont ilyenre gondoltam. Hát regexel a legegyszerűbb sztem, csak egy kicsit belekavarodtam.
hunfatal: a tagek között elméletileg nem szerepelhet '<' és '>' jel.
Karma: a matchgroup tlképpen majd egy string[] lesz.
Ez egy .50-es rombolópuska, elég szép visszarúgással.
-
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.
“All nothings are not equal.”
-
sztanozs
veterán
válasz Jester01 #4668 üzenetére
LOL - kb ilyet csináltam most mikrokontrollerre (most hegesztettem a Hacktivity-n)...
Egy KITT lámpasor elkészítésén bütykölök éppen. KB így megy a lápmpa benne:[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
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.
[ Szerkesztve ]
“All nothings are not equal.”
-
-
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();
}
}[ Szerkesztve ]
-
veterán
-
veterán
-
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
Furcsa, több ezer emberrel találkozunk és egyik sem fog meg igazán. Aztán megismerünk valakit, aki megváltoztatja az életünket. Örökre.
-
Ruszki
senior tag
válasz Jester01 #3774 üzenetére
for (int i = 0; i < 1000; i++)
System.Console.WriteLine("felhasználó");
System.Console.ReadLine();Megcsinálom a tömböt!
De hogyan tudok sorszámot hozzárendelni!?
Vagy lehet nem így kellene hozzá kezdenem!?
Lehet a tömböt csak rendezni kéne!?Az optimista a fényt látja az alagút végén, a pesszimista a sötétet az alagútban, a realista a közeledő vonatot, a mozdonyvezető pedig a három idiótát a síneken.
-
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égetv+FF2lWBoI8RKD7176twPQoCFN6asdnG4s4NmMBKztabEWaFJmP8G6OCJiCJMWcJXwDrpRYTGyF5/W+spqFwWQ==
-
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.[ Szerkesztve ]
“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”
-
sztanozs
veterán
válasz Jester01 #3428 üzenetére
Ha nem validálásra kell, hanem az érték is belőle akkor érdemes non-capturing groupokat használni:
^((?:[-+]?[0-9]+)|(?:N/A))$[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
-
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.[ Szerkesztve ]
-
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.
[ Szerkesztve ]
Ú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!
- Kávé kezdőknek - amatőr koffeinisták anonim klubja
- DIGI Mobil
- Mikrotik routerek
- Drive! - Az utolsó gurulás idén a Quadrifoglio-val
- Milyen billentyűzetet vegyek?
- Digitális Állampolgárság Program
- AMD GPU-k jövője - amit tudni vélünk
- EA Sports WRC '23
- Kertészet, mezőgazdaság topik
- PlayStation 5
- További aktív témák...
- BONTATLAN Új Iphone 16 PRO 128Gb - 1TB Független 1év Apple GARANCIA Deák Térnél Azonnal Átvehető.
- BONTATLAN Új iPhone 16 PRO MAX 256-512GGB Független 1év Apple GARANCIA Deák Térnél Azonnal Átvehető.
- Tamron SP 70-200mm f/2.8 Di VC USD G2 objektív ( Nikon )
- Azta! Yoga Slim 7 Prémium Ultrabook 14,5" -40% AMD Ryzen 5 7640S 16/512 RADEON 760M 2GB 2,9K OLED
- Sigma 35mm f/1.4 DG HSM Art objetkív + táska ( Nikon )
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Axon Labs Kft.
Város: Budapest