Millainen algoritmi tähän toimisi? Tarkastellaan positiivisia kokonaislukuja 1,...,n. Permutoidaan ne johonkin järjestykseen, ja kirjoitetaan ne vasemmalta oikealle. Aluksi henkilö saa vaihtaa kahden numeron paikan keskenään. Sitten henkilön täytyy kerätä luvut seuraavalla tavalla:
Joka kierroksella henkilö käy läpi numerot vasemmalta oikealle. Aluksi hän menee siihen asti kunnes löytää ykkösen ja kerää tämän talteen. Sitten hän jatkaa etenemistä ja kerää seuraavaksi kakkosen, kolmosen ja niin edelleen, jos ne löytyvät samalla kierroksella. Aina on kuitenkin kerättävä yhtä suurempi kuin edellinen kerätty oli. Kun kierros päättyy, aloitetaan uusi kierros, mennään listan alkuun vasemmalle ja aletaan keräämällä yhtä suurempi luku kuin mitä viimeksi kerättiin.
Miten suunnitellaan algoritmi, joka kertoo, monellako tapaa alussa voidaan vaihtaa kahden alkion paikat, jotta luvut tulee kerättyä mahdollisimman vähillä kierroksilla? Miten monta kierrosta tarvitaan?
Lukujen kerääminen numerojärjestyksessä
12
192
Vastaukset 12
- Anonyymi
Binääripuun järjestämisestä saattaisi saada vinkkiä?
https://www.mathwarehouse.com/programming/gifs/binary-search-tree.php - Anonyymi
"Aluksi henkilö saa vaihtaa kahden numeron paikan keskenään." ??
"monellako tapaa alussa voidaan vaihtaa kahden alkion paikat" ???
Selvitä itsellesi mitä noilla tarkoitat ja kerro sitten asia yksiselitteisesti muille. Älä vaihda termejä kesken kaiken.
"Permutoidaan ne johonkin järjestykseen". Jos tuota tapaa ei tiedetä, aika hankala suunnitella yhtikäs mitään algoritmeja. Olet lukenut jotain jostakin ja oletata kaikkien tietävän tasan tarkkaan mitä olet tekemässä. - Anonyymi
En tiedä. Luin tämän osoitteesta https://www.ohjelmointiputka.net/postit/tehtava.php?tunnus=junar
- Anonyymi
Lopeta yksinkeskutelu!
Ohjelmoi metodi, mikä saa parametrina kaksi kokonaislukua, ja vertailee niitä keskenään, ja palauttaa joko luvuista pienemmän tai suuremman
public static int max (int x, int y) {
if (x<y) {
return y;
}
return x;
Sitten käyt silmukassa läpi kaikki luvut niin kauan, kunnes taulukon edellinen luku on pienempi, kuin seuraava.- Anonyymi
Sataakos heinäkuussakin?
En ole meterologi, enkä tiedä tämän vuoden heinäkuun ilmastsota, mutta sinä vuonna, kun kirjoitin tuon kappaleeni "Heinäkuun sateet" -lyriikan, niin oli heinäkuu, ja satoi vettä.
Vielä palaan tähän kysymykseen.
Eli kyseessä on lajitttelualgoritmi, jota kutsutaan tietojenkäsittelyssä "Bubble sort", onko se kupla-lajittelu suomeksi, en tiedä.
Tutustu vaikka näihin sivuihin, niin saat haluamasilaiset tulokset ulos
https://medium.com/karuna-sehgal/an-introduction-to-bubble-sort-d85273acfcd8
https://stackoverflow.com/questions/40369529/java-sorting-int-arrayWikipediasta löytyy teoriaa lajittelualgoritemistä:
https://en.wikipedia.org/wiki/Sorting_algorithm
Lajittelu on tärkeä tietojenkäsittelyn ja algoritmiikan kannalta oleva asia. Ei ole ollenkaan sama, mitä lajittelualgoritmia käyttää esimerkiksi, kun pitäisi yhdistää tietoja tietttyyn järjestykseen esimerkiksi kahdesta laajasta tietokannasta, tai hakea tietoa valtavasta datamassasta mahdollisimman optimaalisen nopealla ajalla. (Esim. Googlella on maailman suurin tietovarasto käytössä, ja haut ovat todella nopeita. Aika näkyy sekunnin murto-osissa mitattuna tulossivulla.) Puhutaan Algoritmin aikakompleksisuudesta.- Anonyymi
Lajttelu on historiaa. Silloin kun minä opiskelin kymmeniä vuosia sitten, kaikki oli vielä ihan tarpeellista ja viisaat kuluttivat aikaa erilaisten teorioden kehittelyyn.
Nykyisin suurimmatkin käytännön tietokannat ovat mitättömiä kapasiteettiin verrattuna. Toista oli ennen kun muistia oli kilotavu ja reikä- ja magneettinauhat ja reikäkortit olivat hitaita ja niiden käsittelyyn vaadittiin paljon ihmistyövoimaa.
- Anonyymi
Ensimmäisen tehtävän tauluthan oli:
[6, 1, 4, 10, 7, 2, 3, 9, 5, 8]
Ja väitän ellei joku toisin todista että pienin kierrosmäärä on 6 joka saavutettiin vaihtamalla taulujen 4 ja 8 paikat, niin että ratkaisemaan lähdettiin tässä järjestyksessä olevia tauluja:
[6, 1, 8, 10, 7, 2, 3, 9, 5, 4]
Kierros 1: kerätyt taulut: 1, 2
Kierros 2: kerätyt taulut: 3, 4
Kierros 3: kerätyt taulut: 5
Kierros 4: kerätyt taulut: 6, 7
Kierros 5: kerätyt taulut: 8, 9
Kierros 6: kerätyt taulut: 10
Tehtävän ratkaisussa käytin apuna noin 40 rivistä Python Scriptiä. Mitään Algoritmejä tai aikakompleksisuuden opiskelua tai tuntemusta ei ratkaisua hakiessa tarvittu.- Anonyymi
Toisen tehtävän tauluthan oli (50kpl):
[38, 42, 43, 27, 41, 20, 33, 6, 47, 45, 34, 11, 19, 7, 24, 23, 35, 29, 50, 5, 17, 15, 2, 26, 49, 8, 31, 36, 1, 21, 3, 39, 22, 37, 46, 13, 40, 14, 25, 44, 16, 18, 12, 10, 30, 48, 32, 9, 4, 28]
Ja väitän ellei joku toisin todista että pienin kierrosmäärä on 24 joka saavutettiin vaihtamalla taulujen 42 ja 19 paikat, niin että ratkaisemaan lähdettiin tässä järjestyksessä olevia tauluja:
[38, (19), 43, 27, 41, 20, 33, 6, 47, 45, 34, 11, (42), 7, 24, 23, 35, 29, 50, 5, 17, 15, 2, 26, 49, 8, 31, 36, 1, 21, 3, 39, 22, 37, 46, 13, 40, 14, 25, 44, 16, 18, 12, 10, 30, 48, 32, 9, 4, 28]
Kierros 1: kerätyt taulut: 1
Kierros 2: kerätyt taulut: 2, 3, 4
Kierros 3: kerätyt taulut: 5
Kierros 4: kerätyt taulut: 6, 7, 8, 9
Kierros 5: kerätyt taulut: 10
Kierros 6: kerätyt taulut: 11, 12
Kierros 7: kerätyt taulut: 13, 14
Kierros 8: kerätyt taulut: 15, 16
Kierros 9: kerätyt taulut: 17, 18
Kierros 10: kerätyt taulut: 19, 20, 21, 22
Kierros 11: kerätyt taulut: 23
Kierros 12: kerätyt taulut: 24, 25
Kierros 13: kerätyt taulut: 26
Kierros 14: kerätyt taulut: 27, 28
Kierros 15: kerätyt taulut: 29, 30
Kierros 16: kerätyt taulut: 31, 32
Kierros 17: kerätyt taulut: 33, 34, 35, 36, 37
Kierros 18: kerätyt taulut: 38, 39, 40
Kierros 19: kerätyt taulut: 41, 42
Kierros 20: kerätyt taulut: 43, 44
Kierros 21: kerätyt taulut: 45, 46
Kierros 22: kerätyt taulut: 47, 48
Kierros 23: kerätyt taulut: 49
Kierros 24: kerätyt taulut: 50
Samaan tulokseen tultiin kahdeksalla (8) eri rivillä. Tässä listattu tuli vastaan ensimäisenä.
Ketjusta on poistettu 2 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
- 142604
Totta on asia. Jeffrey Cohen on jättänyt Sofian.
Vaimon viesti on paljastanut totuuden.2751169Perhoseni (miehelle)
Miksi et usko, että mun rakkaus sinuun on aitoa ja vilpitöntä? Tai että se oli jo silloin? Miksi ajattelet, ettet ole r1671138- 82936
- 87853
- 63818
Mies, näetkö minut myös
Seksuaalisena ihmisenä ja naisena? Haluatko minua seksuaalisesti? Vai olenko mielestäsi tyttönen?24755- 72735
Kuinkahan monen
Naisen puolisoa olet nainen vikitellyt ja eron aiheuttanut? Toivottavasti karma on ku*sut muroihisi useamman kuin kerran69721Mies, kumman ottaisit mieluummin
176 cm vai 154 cm naisen, jos molemmat muuten yhtä viehättäviä? Mikä on oma pituutesi?137690Nainen, mitä mieltä olet kodittomista?
Ja heistä jotka eivät kykene huolehtimaan asioistaan, itsestään eikä terveydestään? Miten heidän kanssaan tulisi toimia?142681- 47670
- 56638
Tekisi mieli vetäistä kunnon jurrit sinun kanssasi
Ja keskustella asiat, ei tästä tule hevonvttua.46614Voiko se ikinä toimia
Voiko meistä ikinä tulla mitään? Näin kauan aikaa on kulunut ja mitään ei tapahdu... En usko, että sinä mietit minua het32608Pettymys TTK-parketilla! Anna Hanski tippui - Sami-opelta erikoinen heitto: "Nyt sä pääset..."
Toisena parina Tanssii Tähtien Kanssa -kisasta tippuivat Anna Hanski ja Sami Helenius. Pettymys oli käsinkosketeltava y25603Anteeksi mies
En jaksa tätä…, en halua, että sinulla on paha mieli tämän takia. Viestiä Sinulle.44594- 40564
- 55548
Kerro mies tarinasi
Miksi kaikki meni niinkuin meni? Haluaisin vieläkin ymmärtää. Tuskin saan vastausta häneltä, koska etsin aavikolta juuri20528