játékfejlesztés.hu
FórumGarázsprojectekCikkekSegédletekJf.hu versenyekKapcsolatokEgyebek
Legaktívabb fórumozók:
Asylum:    5440
FZoli:    4892
Kuz:    4455
gaborlabor:    4449
kicsy:    4304
TPG:    3402
monostoria:    3284
DMG:    3172
HomeGnome:    2919
Matzi:    2519

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2185
Orphy:    1893
Joga:    1791
Bacce:    1783
MaNiAc:    1735
ddbwo:    1625
syam:    1491
Frissebbek | Korábbi postok
[1] [2] [3] > 4 < [5] [6] [7] [8] [9] [10] [15] [20] [21]
ddbwo - Tag | 1625 hsz       Online status #181071   2012.05.17 20:33 GMT+1 óra  
Pedig pofon egyszerű.

Egyszerűen csak azért annyi a PI, mert 1 egység átmérőjű kör kerülete olyan hosszú.
2*r*PI, vagyis d*PI.
Az egységeket pedig könnyű felszorozni. Tizes számrendszerben az 1 az egy egység.
A Half-Life 2: Deathmatch promóció megszűnt! [B¤°
Kezdetben volék az üresség. Ám akkor a Struktúrfüggöny megteremté az Urat.
DrunkenDragon* Blackwolf
   
Harsh - Tag | 231 hsz       Online status #181069   2012.05.17 20:05 GMT+1 óra  
Idézet
DMG :
Idézet
Harsh :
Idézet
LugaidVandroiy :
Age-Sex-Location. Legalábbis szerintem. Onnan következik, hogy Florida. De ha oltári nagy baromságot mondok, az azért van, mert fáradt vagyok, de nagyon.



Kössz! Most már csak azt kell megtudnom, miért annyi a Pi, amennyi, és mehetek aludni.








.. gondoltam inkább itt folytatom akkor.

Szóval, azt tudom, hogy mi az. Azt nem tudom, hogy miért annyi. De ahogy néztem neten, ez nem egy megoldott dolog. És ugye Euklédeszi geometriában annyi amennyi, gömb geometráiában, és hiperbolikus geometriában pedig változó.. de hát ez van.

   
Pretender - Törzstag | 2498 hsz       Online status #181013   2012.05.16 14:46 GMT+1 óra  
semmire Analízis... ezek csak közelítések. Sorösszeg, határérték, korlátok, stb. Meg tudsz vele becsülni dolgokat. Emellett kell majd a következő féléves deriváláshoz, illetve az azt követő integráláshoz.

   
ddbwo - Tag | 1625 hsz       Online status #181012   2012.05.16 14:44 GMT+1 óra  
Kód:
(n+2-1) / (n+2)! = 1/(n+1)! - 1/(n+2)!

Ell:
n=5

6 / 5040 = 1/720 - 1/5040

0,001190 = 0,001388 - 0,000198
0,001190 = 0,001190

---

Jé tényleg. De ez mire lehet jó?

Ezt a hozzászólást ddbwo módosította (2012.05.16 14:52 GMT+1 óra, ---)
A Half-Life 2: Deathmatch promóció megszűnt! [B¤°
Kezdetben volék az üresség. Ám akkor a Struktúrfüggöny megteremté az Urat.
DrunkenDragon* Blackwolf
   
Pretender - Törzstag | 2498 hsz       Online status #181009   2012.05.16 13:13 GMT+1 óra  
ÁHÁ!
Kód:
(n+2-1) / (n+2)! = 1/(n+1)! - 1/(n+2)!

teleszkópikus sor, azaz
Kód:
  1/1 - 1/2 +
+ 1/2 - 1/6 +
+ 1/6 - ...
  ... - 1/(n+2)!

tehát a sorösszeg = 1

Nem, erre nem magamtól jöttem rá

   
Pretender - Törzstag | 2498 hsz       Online status #181007   2012.05.16 12:35 GMT+1 óra  
Najó, egyszerűen nem tudok rájönni... arra kíváncsi a feladat, h konvergens-e a sor, és ha igen, akkor mennyi a sorösszeg. A sorösszeg ugye a részletösszeg sorozat határértéke:
Kód:
sum( (n+1) / (n+2)! ), n=0-tól

ebből ugye ki lehet azt hozni, hogy
Kód:
1 / ( n! * (n+2) )

és innen hogyan tovább?

   
versio - Tag | 659 hsz       Online status #180069   2012.05.06 14:43 GMT+1 óra  
Asylum : az enyem nem seekeli az index tombot
   
Pretender - Törzstag | 2498 hsz       Online status #180064   2012.05.06 14:25 GMT+1 óra  
egyértelmű

   
ddbwo - Tag | 1625 hsz       Online status #180062   2012.05.06 14:23 GMT+1 óra  
Én meg arra lennék kíváncsi, hogy mit jelent a "triviális"...
A Half-Life 2: Deathmatch promóció megszűnt! [B¤°
Kezdetben volék az üresség. Ám akkor a Struktúrfüggöny megteremté az Urat.
DrunkenDragon* Blackwolf
   
Asylum - Törzstag | 5440 hsz       Online status #180061   2012.05.06 14:15 GMT+1 óra  
Na ez már müködget
Akkor most modositsd ugy plz hogy az indextömböt fájlbol olvasod (azaz nem lehet seekelni)

(amugy nem szivatásbol mondom)
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Matzi - Szerkesztő | 2519 hsz       Online status #180058   2012.05.06 14:03 GMT+1 óra  
2 másodperc volt kijavítani a hibát. Tessék a tesztelt kód:
Kód:
for (int i = 0; i < array.length; i++)
{
  temp = array[i];
  while (array[i].num != i)
  {
    t = array[temp.num];
    array[temp.num] = temp;
    temp = t;
  }
}


Eredmény: (értelem szerűen csak a rendezőtömb értékei)
Kód:
19, 18, 8, 17, 3, 14, 7, 16, 11, 10, 9, 15, 1, 6, 13, 4, 5, 2, 12, 0,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
Steps done: 40


Kód:
4, 1, 2, 3, 0, 18, 6, 7, 8, 17, 10, 11, 12, 13, 15, 14, 16, 9, 5, 19,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
Steps done: 28


Kód:
1, 18, 17, 16, 14, 11, 13, 12, 2, 5, 19, 8, 7, 6, 0, 10, 3, 4, 15, 9,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
Steps done: 40


Két triviális eset:
Kód:
19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
Steps done: 40


Kód:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
Steps done: 20


És nem rekurzív, szóval a stack sem döglik meg.

2000 elemre:
Kód:
Steps done: 3999
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
versio - Tag | 659 hsz       Online status #180054   2012.05.06 13:18 GMT+1 óra  
lehet nem ertem a problemat rendesen, mert trivialisnak tunik a megoldas

Kód:
function(int i)
{
    Alma temp=almak[i];
    int index=ind[i];
    i++;
    if (i<num) function(i);
    else almak[index] = temp;
}

Ezt a hozzászólást versio módosította (2012.05.06 13:39 GMT+1 óra, ---)
   
ddbwo - Tag | 1625 hsz       Online status #180052   2012.05.06 12:43 GMT+1 óra  
Idézet
dvorgaz :
Akkor igazán betehetted volna, nem sok értelme volt beírni a megoldás felét.



Há majd nem, nem? Kis önállóságot azért kell engedni.

Elvileg ez már megfelel ennyi hiányosságot tekintve. Ezt kell csak oda tenni pluszba:
---
Kód:
int A = ind[i];     // ki van itt?
int A2 = arr[i];

ind[i] = ind[A];   // "A" helyén levö ide kerül..
arr[i] = arr[A];

ind[A] = A;         // "A" a helyére kerül
arr[A] = A2;


Szerintem Matzi is ezt írta, csak nem volt kedve / ideje kifejteni...

Ezt a hozzászólást ddbwo módosította (2012.05.06 12:57 GMT+1 óra, ---)
A Half-Life 2: Deathmatch promóció megszűnt! [B¤°
Kezdetben volék az üresség. Ám akkor a Struktúrfüggöny megteremté az Urat.
DrunkenDragon* Blackwolf
   
Pretender - Törzstag | 2498 hsz       Online status #180049   2012.05.06 12:29 GMT+1 óra  
A feladat a következő:
- Van egy int ind[] tömbünk, amiben indexek találhatóak, pl.
int ind[] = { 5, 2, 3, 0, 1, 4 }
- Van egy másik tömbünk, mondjuk Alma típusú, amik vannak valamilyen sorrendben.
Alma almak[] = { ... }
- A cél az, hogy együtt haladva a kettőn, a megfelelő helyre tegyük az almákat az indexeknek megfelelően, azaz jelen esetben pl.
ami eddig almak[0] volt, az legyen almak[5]
ami eddig almak[1] volt, az legyen almak[2]
ami eddig almak[2] volt, az legyen almak[3]
ami eddig almak[3] volt, az legyen almak[0]
stb.

Tehát az adott i. elemet az index tömb i. elemén tárolt értékhez kell rakni Lineáris időben, másik tömb használata nélkül. Azaz eddig a legközelebb a legelső "megoldásod" volt, amikor egy külön tömbbe rendezted
Kód:
int num = 6;

int ind[] = { 5, 2, 3, 0, 1, 4 };
Alma almak[] = { ... };
Alma almakRendezve[num];

for (int i = 0; i < num; i++)
{
    int index = ind[i];
    almakRendezve[index] = almak[i];
}

Ez lineáris idejű, és a megfelelő sorrendbe rakja. Ugyan ez kell nekünk, csak másik tömb nélkül. Asszem', de csak pár órát aludtam

   
dvorgaz - Törzstag | 575 hsz       Online status #180048   2012.05.06 12:28 GMT+1 óra  
Idézet
ddbwo :
Azt nem nehéz beszőni oda.


Akkor igazán betehetted volna, nem sok értelme volt beírni a megoldás felét.
   
ddbwo - Tag | 1625 hsz       Online status #180047   2012.05.06 12:25 GMT+1 óra  
Azt nem nehéz beszőni oda.
A rendezésnél kell egy A2 és az A val együtt mozgatni a kiolvasott index segítségével a párját.
A módszer ugyanaz.
A Half-Life 2: Deathmatch promóció megszűnt! [B¤°
Kezdetben volék az üresség. Ám akkor a Struktúrfüggöny megteremté az Urat.
DrunkenDragon* Blackwolf
   
dvorgaz - Törzstag | 575 hsz       Online status #180046   2012.05.06 12:18 GMT+1 óra  
De itt megint csak egy tömböt rendezel, holott nem ez a feladat, hanem egy másik tömböt kell rendezni egy index tömbnek megfelelően.
   
ddbwo - Tag | 1625 hsz       Online status #180045   2012.05.06 12:13 GMT+1 óra  
Hát jó.. Az előző mintájára. Azért a páros részt ki kell pótolni, de mint említettem, ugyanazzal az indexel kell az array adatot is léptetni. Tehát az már könnyű.
Ha jól értelmeztem a "seek"-elést, ez nem "seek"-el, mert csak egyszer végig megy azt annyi.

A max_cycle-t a tömb méretével növelni kell. Csak akkor fut végig rendesen. Mondjuk 10szeresre a biztonság kedvéért.

Kód:
#include <iostream>

using namespace std;

// ha az index jo helyre kerül, akkor a hozzá tartozo elemet is azzal
// az index-szel kell elhelyezni...
int ind[] = {   22,13,14,15,5,9,7,23,24,25,
                1,12,17,18,19,21,20,8,10,16,
                4,0,2,3,6,11 };

int main()
{
    bool done=false;    // értelemszerüen amig kész nincs

    int array_size=sizeof(ind)/sizeof(int); //array mérete

    int cycle=0;        // debug adat, léptetés számláló
    int max_cycle=1000;         // emergency exit

    ///////////// A PROGRAM ///////////////

    for (int i = 0; i < array_size; i++)
    {
        done=false;
        while(!done)
        {
            cycle++;            //debug számlálo

            int A = ind[i];     // ki van itt?
            ind[i] = ind[A];;   // "A" helyén levö ide kerül..

            ind[A] = A;         // "A" a helyére kerül

            if (ind[i]==i)      // ha a mostani helye nem jo, nincs vége
                done=true;
               
            if (cycle>=max_cycle)   // emergency exit
                done=true;
        }
    }

    ///////////// DEBUG INFO ///////////////

    for (int i = 0; i < array_size; i++)
    {
        cout << "index = " << ind[i] << endl;
    }

    cout << "\n" << endl;
    cout << "cycle = " << cycle << endl;

    return 0;
}

Ezt a hozzászólást ddbwo módosította (2012.05.06 12:26 GMT+1 óra, ---)
A Half-Life 2: Deathmatch promóció megszűnt! [B¤°
Kezdetben volék az üresség. Ám akkor a Struktúrfüggöny megteremté az Urat.
DrunkenDragon* Blackwolf
   
Pretender - Törzstag | 2498 hsz       Online status #180043   2012.05.06 12:04 GMT+1 óra  
Ja, mert eddig marha jó megoldásokat írtál be én kíváncsi vagyok rá, írd le mástól sem fogod elvenni a lehetőséget, ne aggódj.

   
ddbwo - Tag | 1625 hsz       Online status #180042   2012.05.06 11:57 GMT+1 óra  
Most ebéd elött csináltam egyet, lényegében Matzi-é is ez lehet a kinézet alapján.
Ez biztosan lineáris, az idő legfeljebb kétszerese a tömb méretének.
---
Ha más már nem rak be, akkor beküldöm. Nem szeretném elvenni a lehetőséget.
A Half-Life 2: Deathmatch promóció megszűnt! [B¤°
Kezdetben volék az üresség. Ám akkor a Struktúrfüggöny megteremté az Urat.
DrunkenDragon* Blackwolf
   
DMG - Szerkesztő | 3172 hsz       Online status #180039   2012.05.06 08:28 GMT+1 óra  
Versio: szerintem nem baj az ha ilyennel néha megmozgatja az ember az agyát, mint a keresztrejtvény.

Tegnap leírtam magamnak egy megoldást ami tök lineáris, de bizonyos esetekben nem használható, arra kéne még valamit kitalálni, ha lesz rá egy szusszanásni időm.
-----------------------------------------
Dont Listen to the Naysayers
   
Asylum - Törzstag | 5440 hsz       Online status #180036   2012.05.06 02:27 GMT+1 óra  
Mert nem lehet elöre tudni h mennyi memoria kell -.-
És még egy korlát lesz: az indextömbben nem lehet seekelni.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
versio - Tag | 659 hsz       Online status #180035   2012.05.06 01:15 GMT+1 óra  
nem ertem mit szenvedtek, ertelmetlen korlatok koze szoritott algoritmusokkal szopni , miert kellene helyben rendezni, ez ugyanolyan mint kikotni hogy csak quicksortal lehet csak rendezni, az eletben nem hasznalja az ember, nem is ertem miert tanitjak meg, bar elrettento algoritmusnak mondjuk tokeletes
   
DMG - Szerkesztő | 3172 hsz       Online status #180031   2012.05.05 23:51 GMT+1 óra  
Én holnap leírom, most meló van. Bár tehet két homokóra között lekörmölöm.
-----------------------------------------
Dont Listen to the Naysayers
   
ddbwo - Tag | 1625 hsz       Online status #180030   2012.05.05 23:44 GMT+1 óra  
nagyon jó xD
A Half-Life 2: Deathmatch promóció megszűnt! [B¤°
Kezdetben volék az üresség. Ám akkor a Struktúrfüggöny megteremté az Urat.
DrunkenDragon* Blackwolf
   
dvorgaz - Törzstag | 575 hsz       Online status #180029   2012.05.05 23:41 GMT+1 óra  
Idézet
ddbwo :
Ha az array hibás lenne, nem lesz végtelen ciklus.

lineárishoz szerintem kell az a plusz tömb mindenképpen. De még ezt is lehet szűkíteni, csak az szerencse kérdése hogy gyorsabb lesz-e.

A feladattal kapcsolatban csak annyi nem világos, hogy "A" helyére kell a fölötte levő érték, vagy az i-edik helyre kell az "A" index értéke... Meg hogy mit zár ki a helyben...

A páros rendezést direkt nem raktam bele. De ugyanazzal az indexel kell őket léptetni.


Tovább optimalizáltam a megoldásod:
Kód:
int ind[] = {   22,13,14,15,5,9,7,23,24,25,
                1,12,17,18,19,21,20,8,10,16,
                4,0,2,3,6,11 };

int main()
{
    int array_size=sizeof(ind)/sizeof(int);

    for (int i = 0; i < array_size; i++)
        ind[i] = i;

    return 0;
}
   
ddbwo - Tag | 1625 hsz       Online status #180027   2012.05.05 23:35 GMT+1 óra  
Ha az array hibás lenne, nem lesz végtelen ciklus.

lineárishoz szerintem kell az a plusz tömb mindenképpen. De még ezt is lehet szűkíteni, csak az szerencse kérdése hogy gyorsabb lesz-e.

A feladattal kapcsolatban csak annyi nem világos, hogy "A" helyére kell a fölötte levő érték, vagy az i-edik helyre kell az "A" index értéke... Meg hogy mit zár ki a helyben...

A páros rendezést direkt nem raktam bele. De ugyanazzal az indexel kell őket léptetni.
A Half-Life 2: Deathmatch promóció megszűnt! [B¤°
Kezdetben volék az üresség. Ám akkor a Struktúrfüggöny megteremté az Urat.
DrunkenDragon* Blackwolf
   
Asylum - Törzstag | 5440 hsz       Online status #180026   2012.05.05 23:28 GMT+1 óra  
Most ez mi? Elöszöris nem ez a feladat...másodszor mi az hogy "emergency exit"?... Lineáris idejü algoritmust kértem (de mostmár egy n*logn essel is megelégszem, söt találtam is, de megvárom mit alkotnak a többiek).
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
DMG - Szerkesztő | 3172 hsz       Online status #180025   2012.05.05 23:24 GMT+1 óra  
-----------------------------------------
Dont Listen to the Naysayers
   
ddbwo - Tag | 1625 hsz       Online status #180024   2012.05.05 23:14 GMT+1 óra  
Gyors csináltam egy programot, így átlátható. Kíváncsi vagyok, hogy "helyben" számít-e a rendezés. Belinkelem a teljes kódot.

A sebessége gyakorlatilag a kettő hatványait követi, mivel legalább a fél csapatot minden körben a helyére teszi. Azaz 1024 elem esetén maximum 10 kört fut.

Na de azért nem full.

(A max_cycle átírásával a debug info mutatja, hogy X kör után hol tart a rendezés...)

Kód:
#include <iostream>

using namespace std;

// ha az index jo helyre kerül, akkor a hozzá tartozo elemet is azzal
// az index-szel kell elhelyezni...

int ind[] = {   22,13,14,15,5,9,7,23,24,25,
                1,12,17,18,19,21,20,8,10,16,
                4,0,2,3,6,11 };

int main()
{
    bool done=false;    // értelemszerüen amig kész nincs

    int array_size=sizeof(ind)/sizeof(int); //array mérete

    int cycle=0;        // debug adat, bejárás számlálo
    int max_cycle=12;         // emergency exit

    ///////////// A PROGRAM ///////////////

    while(!done)
    {
        cycle++;     // debug adat
        done=true;

        for (int i = 0; i < array_size; i++)
        {
            int A = ind[i];         // beolvassuk "A"-t

            if (i!=A)               // ha "A" értéke nem = a helyével
            {
                int B = ind[A];     // "A" helyén levö B mentése
                ind[A] = A;         // "A" a helyére kerül
                ind[i] = B;         // "B"-t ide rakjuk...

                done=false;
            }
        }

        if (cycle>=max_cycle)             // emergency exit
            done=true;
    }

    ///////////// DEBUG INFO ///////////////

    for (int i = 0; i < array_size; i++)
    {
        cout << "index = " << ind[i] << endl;
    }

    cout << "\n" << endl;
    cout << "cycle = " << cycle << endl;

    return 0;
}

Ezt a hozzászólást ddbwo módosította (2012.05.05 23:22 GMT+1 óra, ---)
A Half-Life 2: Deathmatch promóció megszűnt! [B¤°
Kezdetben volék az üresség. Ám akkor a Struktúrfüggöny megteremté az Urat.
DrunkenDragon* Blackwolf
   
Asylum - Törzstag | 5440 hsz       Online status #180017   2012.05.05 19:24 GMT+1 óra  
Idézet
Matzi :
Egy hiba tényleg van benne, while ciklus helyett do-while kellene, de amúgy működőképes. Sietve írtam, ahhoz képest ez nem rossz arány.



Ird már be légyszives a helyes, és tesztelt kódot, mert do-while-al is kajak rossz.

szerk.: és szerintem ugyanaz igaz rá mint minden összehasonlito rendezésre, szoval nem is lehet lineáris idöben megoldani

Ezt a hozzászólást Asylum módosította (2012.05.05 20:04 GMT+1 óra, ---)
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Matzi - Szerkesztő | 2519 hsz       Online status #179649   2012.05.02 09:00 GMT+1 óra  
Idézet
Asylum :
Biztos, hogy jó ez? Probáld ki plz ezzel a két tömbbel:

Kód:
int arr[] = { 2, 1, 5, 0, -5, 3, 1, 5, 7, 1, 4, 5 };
int ind[] = { 3, 0, 1, 5, 6, 4, 2, 10, 7, 9, 8, 11 };


És szerintem kajak négyzetes idejü.

Miért is lenne négyzetes? Egy indexen kétszer járhat a program, amikor oda tesz egy elemet, meg amikor oda fut a ciklus. Ráadásul minden elemet maximum egyszer vesz ki, és pontosan egyszer tesz le, akkor viszont egyből a helyére. Elárulnád, hogy szerinted ebben mi a négyzetes? Mert ha kell, szívesen leimplementálom neked, hogy megnézhesd.

Egy hiba tényleg van benne, while ciklus helyett do-while kellene, de amúgy működőképes. Sietve írtam, ahhoz képest ez nem rossz arány.

Ezt a hozzászólást Matzi módosította (2012.05.02 09:45 GMT+1 óra, ---)
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
ddbwo - Tag | 1625 hsz       Online status #179634   2012.05.01 20:42 GMT+1 óra  
Idézet
Joga :
a 2 pair mióta 4 tömb?
Szerintem még szedj magadra egy kis tudást, mielőtt hülyeségeket írogatsz.



Csak kérdeztem. Úgy tűnt észszerűnek. Egy pair-nak kettő eleme van. 2*2=4.

Találós kérdés: Ez a tömb hány tömb?

int tomb[ 2 ][ 16 ]; // ennek megoldás szaga van... x)

Ezt a hozzászólást ddbwo módosította (2012.05.01 20:56 GMT+1 óra, ---)
A Half-Life 2: Deathmatch promóció megszűnt! [B¤°
Kezdetben volék az üresség. Ám akkor a Struktúrfüggöny megteremté az Urat.
DrunkenDragon* Blackwolf
   
Joga - Törzstag | 1791 hsz       Online status #179632   2012.05.01 20:33 GMT+1 óra  
a 2 pair mióta 4 tömb?
Szerintem még szedj magadra egy kis tudást, mielőtt hülyeségeket írogatsz.
(ಠ ›ಠ) Stewie!

   
ddbwo - Tag | 1625 hsz       Online status #179630   2012.05.01 20:08 GMT+1 óra  
Lehet én látom rosszul, de innen nézve Matzi 2 Pair-ja valójában 4 tömbnek számít... Ennyi erővel akármilyen struktúra tömb lehetne.
--

Vagy egy-egy duplázott méretű tömb offset számolással... A típus különbözőség miatt nem lehet egyetlen háromszoros tömb...

Mindegy, az összes egyszerű lenne, csak nem tudom pontosan mire megy ki a játék. Akkor meg már minek írnám le?
--

"helyben" ... ... More smilies ... Ecsém! ... Mit zár ki a "helyben" egyáltalán?

Ezt a hozzászólást ddbwo módosította (2012.05.01 20:29 GMT+1 óra, ---)
A Half-Life 2: Deathmatch promóció megszűnt! [B¤°
Kezdetben volék az üresség. Ám akkor a Struktúrfüggöny megteremté az Urat.
DrunkenDragon* Blackwolf
   
Pretender - Törzstag | 2498 hsz       Online status #179629   2012.05.01 20:06 GMT+1 óra  
Nem érti, adjátok fel. Kár volt "megszólalnom" egyáltalán.

   
ddbwo - Tag | 1625 hsz       Online status #179628   2012.05.01 20:02 GMT+1 óra  
Há itt helyben megoldottam gondolkodás nélkül.

Amúgy a new_arr lehet a temp ennél. Akkor meg még egyszerűbb. Az old_index meg csak azért van, hogy jobban nézzen ki első ránézésre.

Azon kívül:

Idézet
Asylum :
Ha ez megvan, akkor meg visszafelé
Ja és lineáris idöben.



Ha tudnám miért nem lehet temp tömb, mást írtam volna.
A Half-Life 2: Deathmatch promóció megszűnt! [B¤°
Kezdetben volék az üresség. Ám akkor a Struktúrfüggöny megteremté az Urat.
DrunkenDragon* Blackwolf
   
DMG - Szerkesztő | 3172 hsz       Online status #179627   2012.05.01 19:35 GMT+1 óra  
Idézet
ddbwo :
Az majdnem ugyan az. A vonatkozó részt még talán képes vagy kicserélni. Bár Pretender már elintézte, szal nem okozhat gondot.

"MULTIFUNKCIONÁLIS" és a lehető leggyorsabb... Egyszerű, mint a pasziánsz.
---

Nincs mit!



Elmagyarázom, hogy miért vagy Asylum szerint gyökér.

A "Helyben kell rendezni" azt jelenti, hogy 3. tömb bevonása nélkül, ugyanis azt még a hülye is meg tudja csinálni. Hogy tiszta legyen: A példádban a new_arr a 3. tömb.

És senki sem kért olyan plusz fícsört, hogy az eredeti sorrend megmaradjon.
-----------------------------------------
Dont Listen to the Naysayers
   
ddbwo - Tag | 1625 hsz       Online status #179615   2012.05.01 15:56 GMT+1 óra  
Az majdnem ugyan az. A vonatkozó részt még talán képes vagy kicserélni. Bár Pretender már elintézte, szal nem okozhat gondot.

"MULTIFUNKCIONÁLIS" és a lehető leggyorsabb... Egyszerű, mint a pasziánsz.
---

Nincs mit!

Ezt a hozzászólást ddbwo módosította (2012.05.01 16:21 GMT+1 óra, ---)
A Half-Life 2: Deathmatch promóció megszűnt! [B¤°
Kezdetben volék az üresség. Ám akkor a Struktúrfüggöny megteremté az Urat.
DrunkenDragon* Blackwolf
   
bolyzsolt - Törzstag | 607 hsz       Online status #179614   2012.05.01 15:54 GMT+1 óra  
(És most ddbwo elkezdi megmagyarázni, hogy de neki márpedig igaza van x)

   
Asylum - Törzstag | 5440 hsz       Online status #179613   2012.05.01 15:49 GMT+1 óra  
Látom a magyar nyelv értelmezésével is gondjaid vannak te gyökér; helyben kell rendezni.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
ddbwo - Tag | 1625 hsz       Online status #179611   2012.05.01 14:54 GMT+1 óra  
Nézd meg jobban. A string-es példa volt az első.

+Ha a "new_arr" új cikluson belül keletkezik, kilépve onnan eltűnik, viszont nem kell a sort visszarendezni. Eredetileg lenne "new_ind" is, de mivel 0-tól felfelé menne az új tömb, felesleges...
---

Persze attól fűgg, hogy ezek párok, vagy sima indexelt elemek.

(0. helyre kérem a harmadik elemet, vagy 0. elemből legyen a harmadik elem...)

Úgyhogy még ráadásul multifunkcionális is a megoldásom!!!

Ezt a hozzászólást ddbwo módosította (2012.05.01 15:46 GMT+1 óra, ---)
A Half-Life 2: Deathmatch promóció megszűnt! [B¤°
Kezdetben volék az üresség. Ám akkor a Struktúrfüggöny megteremté az Urat.
DrunkenDragon* Blackwolf
   
Pretender - Törzstag | 2498 hsz       Online status #179610   2012.05.01 14:42 GMT+1 óra  
@ddbwo:
Idézet
Asylum :
Azt kifelejtettem, hogy helyben kell rendezni


azaz nincs másik tömb. Mellesleg még így is fordítva kell...
Kód:
arr[] = { 2, 1, 5, ... }
ind[] = { 3, 0, 1, ... }

azaz a 3. helyre kerül a 0. helyen álló elem, 0. helyre kerül az 1. helyen álló elem, és az 1. helyre kerül a 3. helyen álló elem, stb.
azaz pont fordítva, mint ahogy írtad...
Kód:
new_arr[old_index] = arr[i];

   
ddbwo - Tag | 1625 hsz       Online status #179609   2012.05.01 14:07 GMT+1 óra  
Ha csak az indexelt rendezés a cél, bejárás egyszer:

Kód:
int arr[n];
int ind[n];

int new_arr[n]; // <--- ezzel a korábbi is megmarad

for (int i=0;i<n;i++)
{
    int old_index = ind[i];
    new_arr[i] = arr[old_index];
}

Ezt a hozzászólást ddbwo módosította (2012.05.01 14:21 GMT+1 óra, ---)
A Half-Life 2: Deathmatch promóció megszűnt! [B¤°
Kezdetben volék az üresség. Ám akkor a Struktúrfüggöny megteremté az Urat.
DrunkenDragon* Blackwolf
   
Asylum - Törzstag | 5440 hsz       Online status #179607   2012.05.01 12:56 GMT+1 óra  
Biztos, hogy jó ez? Probáld ki plz ezzel a két tömbbel:

Kód:
int arr[] = { 2, 1, 5, 0, -5, 3, 1, 5, 7, 1, 4, 5 };
int ind[] = { 3, 0, 1, 5, 6, 4, 2, 10, 7, 9, 8, 11 };


És szerintem kajak négyzetes idejü.

Ezt a hozzászólást Asylum módosította (2012.05.01 13:07 GMT+1 óra, ---)
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Matzi - Szerkesztő | 2519 hsz       Online status #179578   2012.04.30 17:50 GMT+1 óra  
Így egy kicsit trükkösebb, de megoldható. Az egyszerüség kedvéért legyen a két tömb csak egy tömb, Pair-ok (num és str) tömbje. Csak kevesebb gépelés nekem.

Kód:
Pair temp, t;
for (int i = 0; i < array.length; i++)
{
  temp = array[i];
  while (temp.num != i)
  {
    t = array[temp.num];
    array[temp.num] = temp;
    temp = t;
  }
}


Ez a kód kiveszi az elemeket, ha épp nincsenek a helyükön, és berakja a helyükre. Az ott lévő elemet kiveszi, és ezt csinálja addig, amíg az elem nem került a helyére. Ha oda került, akkor továbblép. Ez persze O(n), mert egy elemet maximum kétszer vizsgál meg, egyszer, ha odaér a ciklus, illetve egyszer, ha a helyére kell tennie.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
Asylum - Törzstag | 5440 hsz       Online status #179570   2012.04.30 17:00 GMT+1 óra  
Azt kifelejtettem, hogy helyben kell rendezni
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Matzi - Szerkesztő | 2519 hsz       Online status #179568   2012.04.30 16:58 GMT+1 óra  
Ez azért nem egy nagy dolog. Fogsz egy for ciklust, végigsétálsz rajta, és csak bepakolod a megadott indexhez.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
Asylum - Törzstag | 5440 hsz       Online status #179566   2012.04.30 16:52 GMT+1 óra  
Egy érdekes problémába ütköztem: rendezzünk be egy tömböt egy adott rendezötömb szerint.
Pl.

Kód:
string arr[] = { "kutya", "cica", "szamár", "disznó", " malac" };
int sortarr[] = { 3, 4, 0, 2, 1 };


Ha ez megvan, akkor meg visszafelé
Ja és lineáris idöben.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
versio - Tag | 659 hsz       Online status #179468   2012.04.28 18:17 GMT+1 óra  
zeller: mindegyik modszerrel megoldhato , egyik lassabb lesz masik gyorsabb, szerintem a logaritmus alapu muvelet vegzes lesz a leggyorsabb, mivel ugy minden muvelet visszavezetheto egyszerubb es gyorsabb muveletre, a logaritmus azonossagai nem tartozik a bonyolult matematika buvkorebe, azt hiszem elso osztalyos gimnaziumi tananyag

log (A*B) = log A + log B
log (A/B) = log A - log B
log (A^B) = B * log A


ez a modszer meg a 32 bites processzor alapu muveletvegzest is szetszabja, foleg ha az hatvanyozas vagy osztas
   
Frissebbek | Korábbi postok
[1] [2] [3] > 4 < [5] [6] [7] [8] [9] [10] [15] [20] [21]