Skulle vara intressant om någon vill ta upp utmanningen. mmm. Det beror klart på hur modern dator du har. Man kan få en ganska snajsig kod om man väljer vissa språk: Visst är det det. Det lättaste sättet att se det på är: Fae... tänkte just chansgissa på Lisp. <b>Fae... tänkte just chansgissa på Lisp. </b> Stämmer bra det, mycket parenteser ska det vara! <b>Visst är det det. Det lättaste sättet att se det på är: Min son Kenneth skrev en jättefin avhandling om Eiffel som jag har i kärt förvar. Jag tycker att det blir "snajsigt" i C också: Skrev om den i c#, får ca 70 ms då, runt 100 ms i vb (den hoppar hej vilt, dålig upplösning på timern där. Lite lika i c#, men mer stabil där) Bra seriösa Oskar. Vet att C dialekter skapar snabb och bra kompilerad kod. <b>Din näsa växer mer o mer för varje PS besök du gör...</b> vb.net kommer klara sig fint, den kommer slå vb 6 ;) Saken är att vb.net kommer ge samma binärkod som jag skrev, med undantaget att en optimering som sparade några väldigt få klockcykler (jag kunde labba med att använda en pekare istället för att göra en kopiering av hela bitmappen) är c#-only. (Den optimeringen gav inte direkt något utslag, så den är ganska tråkig egentligen :P ) Oskar, kolla på PLinq - Parallel Linq. Roger: Jag funderade faktiskt på att splitta fraktalen rakt av och köra halva i åtskilda trådar, men funderade lite på hur stor vinsten skull bli egentligen.. ;) Oskar: Så har jag gjort i princip.Jag kör bara halva fraktalen,spegelvänder och lägger den tillrätta. Sven: Gör samma sak. Tänkte alltså att splitta den halva som faktiskt räknas ut i två trådar :PUtmaning ang gammal är äldst Mandelbrot
Visa hur Ni löser problemmet Mandelbrot med Era verktyg. Vb net är speciellt intressant.
Vill se vad Ni får för tid och minne för att visa samma bild i 640*480.
Programarkivet:Ny Optimerad MandelbrotSv:Utmaning ang gammal är äldst Mandelbrot
Min gamla tröska kör det på 178 ms med lite variation.
Då skulle jag vilja jämför på min dator hur snabbt tex en VB.net applikation löser samma uppgift.
Kopiera min kod om Ni känner för det. Skulle vara kul att se hur VB.net koden ser ut.Sv: Utmaning ang gammal är äldst Mandelbrot
<code>
tic
xc = 640; yc = 480;
yc = yc/2;
cc = 20;
c = zeros(yc, xc);
x = linspace(-3, 1, xc);
y = linspace(0, 1.2, yc);
[x, y] = meshgrid(x,y);
v = x + i*y;
z = v;
toc
for j = 0:cc
z = z.^2 + v;
c((c==0) & (abs(z)>4)) = j;
end
toc
imagesc([flipud(c); c]);
</code>
Hela programmet är på totalt 18 rader, inklusive bildvisning och timing. Däremot är det sjukt dåligt optimerat, och tar en 10 sekunder för 640*480.
EDIT: Gissa gärna språket (gärna ni som inte direkt ser vilket det är)!Sv: Utmaning ang gammal är äldst Mandelbrot
[x, y] = meshgrid(x,y);
Förutom funktionella språk är det inte många som har en motsvarande konstruktion.Sv:Utmaning ang gammal är äldst Mandelbrot
Någon som testat Eiffel någon gång.Min son Kenneth var en hejare på det i början på Nittiotalet.Sv: Utmaning ang gammal är äldst Mandelbrot
nä, alldeles för lite parenteser :)Sv:Utmaning ang gammal är äldst Mandelbrot
Observera också att
<code>
v = x + i*y;
z = v;
toc
for j = 0:cc
z = z.^2 + v;
c((c==0) & (abs(z)>4)) = j;
end
toc
imagesc([flipud(c); c]);
</code>
Är den enda "operativa" koden. Resten är initieringar. Sv: Utmaning ang gammal är äldst Mandelbrot
[x, y] = meshgrid(x,y); </b>
tic toc är väl också ganska matlab-signifikant... ;)
<b>Någon som testat Eiffel någon gång</b>
jorå... fast det var drygt 15 år sen när man gick på högskolan... läste även C++, Lisp, ML och Modula2...
Realtidsprogrammering i Modula2... det var en höjdare... ;)Sv:Utmaning ang gammal är äldst Mandelbrot
Nu är han miljonär inom branchen data It . Ett av dom projekt han är involverd i är ett udda som jag är
tveksam till, kan ha fel. Tycker det kolliderar med flera intrigitetslagar.
www.qrodo.com
mmm... Persson dög inte. Nu heter han Kenneth Pernyér.
Han skall bygga en ny stam. Jag har 4 barnbarn som heter Pernyer. Jättestolt FarFarSv:Utmaning ang gammal är äldst Mandelbrot
#define ROWS 40
#define COLS 80
#define MAXN 1000
main()
{
int r, c;
for (r=0; r<ROWS; r++)
{
for (c=0; c<COLS; c++)
{
float x0, y0;
float x, y;
int n;
x0 = c*2.0/COLS - 1.5;
y0 = r*2.0/ROWS - 1.0;
x = 0.0;
y = 0.0;
for (n=0; n<MAXN && x*x + y*y < 2.0; n++)
{
float x_, y_;
x_ = x*x - y*y + x0;
y_ = 2*x*y + y0;
x = x_;
y = y_;
}
putchar(n==MAXN ? '*' : ' ');
}
putchar('\n');
}
}
Sv: Utmaning ang gammal är äldst Mandelbrot
Sv:Utmaning ang gammal är äldst Mandelbrot
Men tycker ändå att gamla VB klarar sig bra i kompilerad form.
Körde samma i Delphi. ~172 ms i VB ~150 ms i Delphi.
Jag är mest intresserad av hur VB.net löser samma sak. Jag började kolla VB.net men kräktes
redan efter någon vecka. Insåg snabbt att det var samma shit som gamla VB4.
C++ och C# är det som gäller. Jag stannar i VB6 / Delphi.
Som en gammal snickare , han vet vilken hyvel som passar honom bäst.
Det är slutresultatet som räknas.Sv: Utmaning ang gammal är äldst Mandelbrot
Ha Ha Ha . Jag har hittat din svaga punkt Hjalmar.
<b>Du är en avundsjuk liten djä... dvärg som hoppar av ilska när du hör att det går bra för någon</b>. Sv: Utmaning ang gammal är äldst Mandelbrot
Sv:Utmaning ang gammal är äldst Mandelbrot
De har demos på fraktaler som beräknas med PLinq , vilket gör att man kan nyttja flera processorer.
Riktigt ballt faktiskt.
Den partitionerar jobben per scanline i fraktalen.Sv: Utmaning ang gammal är äldst Mandelbrot
Sv:Utmaning ang gammal är äldst Mandelbrot
Sv: Utmaning ang gammal är äldst Mandelbrot