Kezdőoldal » Számítástechnika » Programozás » Ennek a leprogramozása hogyan...

Ennek a leprogramozása hogyan lenne optimális?

Figyelt kérdés

Kicsit törtem a fejem, de nem jöttem rá semmi értelmes megoldásra.


Adott egy adatbázis, melybe be vannak táplálva egy fiktív lottó nyerőszámai.


n1[1-20], n2[1-20], n3[1-20], n4[1-20] és joker[1-100].


A Program 5 számot vár a felhasználótól, a fenti struktúra szerint, és kikeresné az adatbázisból hogy hány 1-2-3-4 találatos és Nyertes szelvénye lett volna a megadott számok alapján.


(Hasonlóképp mint itt: [link] )


2022. ápr. 24. 23:32
1 2
 1/13 anonim ***** válasza:
0%

Ha MySQL adatbázis, egy lehetséges megoldás:


1. Összefűzöd a nyerőszámokat egy mezőbe CONCAT() függvénnyel


2. Ebben a mezőben LIKE-al keresel

2022. ápr. 25. 00:08
Hasznos számodra ez a válasz?
 2/13 anonim ***** válasza:
67%

Például 1,7,6,4 számokkal:


[link]



Groupolod találatonként (ha n1 találat +1, n2 találat +1... kijön 0-1-2-3-4 közül valami.


Első mezőbe ugyanúgy kiírod hány találatosról van szó

Második mezőbe ugyan így, csak összeszámolva az egyezőeket.

2022. ápr. 25. 02:06
Hasznos számodra ez a válasz?
 3/13 anonim ***** válasza:
0%

Dehát... Dehát... Ennek semmi értelme.

Mi az, hogy a nyerőszámok vannak letárolva egy db-be? Az összesen 5 szám, nem? Erre minek db?

És mi az, hogy hány 0,1,2,... találata lenne?

5 számmal ezek közül pontosan egy lehet, nem?

2022. ápr. 25. 09:09
Hasznos számodra ez a válasz?
 4/13 anonim ***** válasza:
100%

pèlda


március: 1,3,9,15,21

április: 2,5,22,25,30

május: 1,9,25,41,50

júnus: 3,4,7,21,42


számaim: 1,3,21,30,42


1 találat: 2 db (április, május)

2 találat: 0 db

3 találat: 2 db (március, június)


gondolom valahogy így érti a kérdező.


na hát, szzerintem a feladatnak pont az a lényege, hogy te jöjj rá az optimális megoldásra. Mert magának a problémának a megoldása nem egy magy ördöngősség.

2022. ápr. 25. 10:49
Hasznos számodra ez a válasz?
 5/13 anonim ***** válasza:
0%
Dehát ennek továbbra sincs semmi értelme, LoL :D :D
2022. ápr. 25. 11:00
Hasznos számodra ez a válasz?
 6/13 A kérdező kommentje:
Ezt a feladatot nem kaptam, egyszerűen csak elgondolkoztam rajta hogy hogyan oldanám meg, magamtól valószínűleg valami nagyon gyökér módon(: Azt nem tudom viszont ki pontozza le a válaszokat.
2022. ápr. 25. 11:19
 7/13 anonim ***** válasza:
100%

"Adott egy adatbázis, melybe be vannak táplálva egy fiktív lottó nyerőszámai.



n1[1-20], n2[1-20], n3[1-20], n4[1-20] és joker[1-100]."


1-től 20-ig lehetnek a számok és 4-es lottóról beszélünk? A joker meg 1-től 100-ig lehet?


A linkelt példában 5-ös lottó van jocker nélkül.


Milyen adatbázisról beszélünk, sql, noSql?

Milyen optimális megoldásra gondolsz? Hogy ne kelljen mindenképpen elejétől végig bejárni az adatbázist kereséskor?

2022. ápr. 25. 13:26
Hasznos számodra ez a válasz?
 8/13 anonim ***** válasza:
Az adatbázis stuktúra hibás.
2022. ápr. 25. 15:01
Hasznos számodra ez a válasz?
 9/13 A kérdező kommentje:
Hogyan lenne helyes #8?
2022. ápr. 25. 15:19
 10/13 2*Sü ***** válasza:
100%

> Hogyan lenne helyes #8?


Ugyan nem #8-as vagyok, de én is szerencsésebbnek tartanám, ha lenne egy tábla két mezővel az egyik a szelvény száma (vagy sorsolási dátum, vagy ilyesmi), a másik az egyik nyerőszám, esetleg még egy mező, hogy hányadik nyerőszám. Valahogy így:


CREATE TABLE huzasok (

huzas_azonosito INT NOT NULL,

sorszam INT NOT NUL,

szam INT NOT NULL,

PRIMARY KEY (huzas_azonosito, sorszam)

)


Pl. az ötös lottón legutóbb a 41, 54, 64, 81, 83 számokat húzták, ez öt sor lenne az adatbázisban:

202216, 1, 41

202216, 2, 54

202216, 3, 64

202216, 4, 81

202216, 4, 83

(A szelvény száma az évből és a hétből áll össze ebben a példában, ezt is lehet cizellálni, ha kell.)


Innen meg egyszerű:

SELECT huzas_azonosito, COUNT(szam) AS talalat

FROM huzasok

WHERE szam IN (p1,p2,p3,p4,p5)

GROUP BY huzas_azonosito


Ahol p1–p5 az az öt szám, amire kíváncsi vagy. Eredményül azokat a szelvényeket kapod, amiken volt legalább egy találat, a találatok számával.


Aztán ha a húzásokról egyéb információkat is kell, azt lehet külön táblában tárolni. Meg persze szanaszét lehet innentől optimalizálni, indexelni, stb…

2022. ápr. 25. 17:20
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, 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!