Kezdőoldal » Számítástechnika » Programozás » Az alábbi feladatot hogyan...

Az alábbi feladatot hogyan kellene megoldani Java programozásban?

Figyelt kérdés
Oldjuk meg Euler problémáját: hány darabot vehetünk egyes állatokból? Összesen 100 állatot (sertést, kecskét és juhot) kell vásárolni összesen 100 aranyért. A sertés ára 3 és fél arany, a kecskéé 1 és egyharmad, a juhé fél arany.
2018. ápr. 2. 23:20
1 2
 1/18 anonim ***** válasza:

sertés 3,5 kecske 1,33 juh 0,5

ennek kell egy közös pont, ami 100 lesz, de ezt addig ismételje, amíg az állatok száma is száz nem lesz, ami bonyolítja, az az 1+1harmad, mert 1,333333333333333333 és


elsőnek próbáld meg kettővel vagy "kerekebb számmal"

Így este már nincs kedvem leírni, de a gondolatmenet nem olyan bonyolultnak tűnik

2018. ápr. 2. 23:34
Hasznos számodra ez a válasz?
 2/18 anonim ***** válasza:
hol kaptad a feladatot ha nem titok?
2018. ápr. 2. 23:45
Hasznos számodra ez a válasz?
 3/18 anonim ***** válasza:
62%

System.out.println("lehetséges megoldások [s;k;j]:");

for (int s = 0; s <= 100; s++) {

for (int k = 0; k <= 100; k++) {

for (int j = 0; j <= 100; j++) {

if (21 * s + 8 * k + 3 * j == 600 && s + k + j == 100) {

System.out.println("[" + s + ";" + k + ";" + j + "]");

}

}

}

}

2018. ápr. 3. 00:02
Hasznos számodra ez a válasz?
 4/18 anonim ***** válasza:

#3: wow!


a közös többszörös megoldás meg külön wow! :)


#2-es vagyok és csak azért kérdeztem mert jól jönnek az ilyen gyakorló feladatok nekem is...

2018. ápr. 3. 00:22
Hasznos számodra ez a válasz?
 5/18 anonim ***** válasza:
89%
mondjuk talán annyiban lehetne optimalizálni hogy sertés és kecske esetében felesleges 100-i elmenni mert mondjuk sertésből eleve max 28-at lehet venni de ez már kötekedés.. :)
2018. ápr. 3. 00:37
Hasznos számodra ez a válasz?
 6/18 anonim ***** válasza:
Nem, leginkább azzal lehetne optimalizálni, hogy tisztán matekos fejjel felírjuk a 21s + 8k + 3j = 600 diofantoszi egyenletet és megoldjuk. Akkor nem kell végigpörgetni 10 millió megoldáson, elég lenne 2-szer legkisebb közös többszöröst számolni.
2018. ápr. 3. 04:12
Hasznos számodra ez a válasz?
 7/18 A kérdező kommentje:
Hát munka mellett járok levelezős egyetemre és ott kaptam ilyen előző vizsgapéldákat (programozásban első félév) így sajnos megosztanom ezeket nem lehetséges :(. A válasz írójának pedig nagyon szépen köszönöm, így már működik! :)
2018. ápr. 3. 08:39
 8/18 A kérdező kommentje:
Egy kis matematikai levezetést kérhetnék hozzá segítségül még? Nézegetem de sajnos nem értem a matematikai hátteret hogy miért pont így jön ki.
2018. ápr. 3. 08:45
 9/18 anonim ***** válasza:

Egymásba ágyazott FOR: Végigmegy a sertések mennyiségén. Minden egyes sertésmennyiség mellett végigmegy a kecskék mennyiségén, és minden egyes kecskemennyiség mellett végig megy az összes juhmennyiségen. Magyarul a három egymásbaágyazott forciklus azt csinálja, hogy az összes létező kombináción végigmegy, kezdve a 0/0/0 db állattól a 100/100/100db állatig. Azaz 100*100*100 = 10 millió kombináción végigpörög.


Az IF pedig a forciklusokon belül van, azaz minden egyes kombináción megvizsgálja, hogy igaz-e:

1.) összesen 100 állatunk van

2.) összesen 100 aranyat fizetünk

Amennyiben teljesül mindkét feltétel, kiírja a helyes kombinációt.


Ha a diofantoszi matekos megoldásra gondolsz, akkor azt egy kicsit problémásabb lesz elmagyarázni, hiszen azért a lineáris algebrát már nagyjából érteni kéne ahhoz, hogy felfogd (meg a 3 ismeretlenes diofantoszi egyenlet egyébként is összetett), de majd tanulni és használni fogjátok a későbbiek során, például a kódolásnál vagy kriptográfiánál. Programozás alapjain nem kell ezt még tudni.

2018. ápr. 3. 10:38
Hasznos számodra ez a válasz?
 10/18 anonim ***** válasza:

Lehet a 21s + 8k + 3j = 600 kifejezés zavar be:


3.5 sertés + 4/3 kecske + 0.5 juh = 100 arany. Ez eddig megvan? Hattal való szorzás után meg a fenti egyenletet kapjuk. Azért szoroztam be hattal, hogy egész számokat kapjunk és így lehessen integerekkel számolni. Mivel az egyenlet mindkét oldalát megszoroztam hattal, ezért ekvivalens átalakításnak minősül, tehát rendben van.

2018. ápr. 3. 10:43
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!