Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Porównanie ciągu liczb
diamondking
post 25.01.2021, 13:59:06
Post #1





Grupa: Zarejestrowani
Postów: 100
Pomógł: 0
Dołączył: 7.02.2014

Ostrzeżenie: (0%)
-----


Cześć.

Chciałbym zrobić skrypt, który raz dziennie w bazie aktualizuje kod z 5 różnych liczb np. (71683) - tu problemu nie będę mieć.

Chciałbym też by użytkownik poprzez formularz mógł wysłać swoją odpowiedź.
Problem pojawia się tu bo chciałbym zrobić skrypt, który sprawdzi:

1 - ile liczb jest poprawnych
2- ile liczb jest na właściwym miejscu.

Jeżeli użytkownik dla przykładu wpisze kod 28643

to powinien wyjść wynik:

3 liczby są poprawne
2 liczby są w odpowiednim miejscu.

Pomożecie mi jak za to się zabrać.
Z góry dziękuję.
Go to the top of the page
+Quote Post
nospor
post 25.01.2021, 14:39:09
Post #2





Grupa: Moderatorzy
Postów: 36 442
Pomógł: 6290
Dołączył: 27.12.2004




Bierzesz pierwsza cyfre z ciagu i patrzysz czy wystepuje w ciagu wzorcowy. Jak tak, to masz pierwsza liczbe poprawna
Bierzesz druga cyfre z ciagu i patrzysz czy wystepuje w ciagu wzorcowy. Jak tak, to masz kolejna liczbe poprawna
Itd.

Co do wlasciwej pozycji to robisz podobnie z ta roznica ze nie szukaz w calym ciagu wzorcowy a tylko w okreslonej pozycji

W czym problem?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
kreatiff
post 25.01.2021, 14:42:59
Post #3





Grupa: Zarejestrowani
Postów: 324
Pomógł: 105
Dołączył: 7.08.2012

Ostrzeżenie: (0%)
-----


Ja bym rozbił obie liczby na tablicę cyfr i teraz:
1. array_intersect() wskaże tablicę z cyframi w obu liczbach, wystarczy policzyć ile ich jest.
2. pięciokrotna pętla, a w środku licznik wzrastający gdy obie cyfry na każdej kolejne pozycji z obu tablic są takie same.

edycja: ja się sugerowałem, że to ma działać tak jak taka stara gra, gdzie odgaduje się jakiś kod w oparciu o wskazówki, które się dostaje odnośnie pozycji cyfr, które zgadujemy. Moje rozwiązanie nie wskaże Ci np. drugiej ósemki w zgadywanej kombinacji jako prawidłowej, gdy w kodzie do zgadnięcia jest tylko jedna ósemka. Rozwiązanie nade mną wskaże obie ósemki jako dostępne w kodzie.
Takie drobne różnice, które już sam musisz uznać czy zasadne.

Ten post edytował kreatiff 25.01.2021, 14:47:12
Go to the top of the page
+Quote Post
diamondking
post 25.01.2021, 16:30:06
Post #4





Grupa: Zarejestrowani
Postów: 100
Pomógł: 0
Dołączył: 7.02.2014

Ostrzeżenie: (0%)
-----


Poradziłem sobie w taki sposób:

  1. $kodpost = ''.$_POST['code'].'';
  2. for($i = 0, $length = strlen($kodpost); $i < $length; ++$i){
  3. $kodpost[$i] = $kodpost[$i];
  4. }
  5.  
  6. $kodwynik = "".$druidcode -> fields['value']."";
  7. $tablica = array();
  8. for($i = 0, $length = strlen($kodwynik); $i < $length; ++$i){
  9. $kodwynik[$i] = $kodwynik[$i];
  10. $tablica[] = $kodwynik[$i];
  11. }
  12.  
  13. $dobremiejsca = 0;
  14. $poprawne = 0;
  15. for($i = 0; $i <= 4; ++$i){
  16. if($kodpost[$i] == $kodwynik[$i])
  17. {
  18. $dobremiejsca = $dobremiejsca+1;
  19. }
  20.  
  21. if (in_array("".$kodpost[$i]."", $tablica))
  22. {
  23. $poprawne = $poprawne+1;
  24. }
  25. }


Co sądzicie o takim rozwiązaniu?
Go to the top of the page
+Quote Post
nospor
post 25.01.2021, 18:01:26
Post #5





Grupa: Moderatorzy
Postów: 36 442
Pomógł: 6290
Dołączył: 27.12.2004




$kodpost = ''.$_POST['code'].'';
for($i = 0, $length = strlen($kodpost); $i < $length; ++$i){
$kodpost[$i] = $kodpost[$i];
}

Po co te ciapki '' przed i po ?

Albo to: $kodpost[$i] = $kodpost[$i]; Co to niby ma robic?

Dalej nie sprawdzam wink.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.04.2024 - 02:20