• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak zrobić aby komputer sam losował liczbę i ją znalazł w sposób binarny .

Object Storage Arubacloud
+1 głos
114 wizyt
pytanie zadane 6 października 2020 w Python przez Rock799 Nowicjusz (130 p.)
# zgadnij liczbę
import random
wylosowana = random . randint (1, 128) #losujemy liczbę
 #print(wylosowana)
wpisana= int(input("podaj liczbę :"))
ile = 1
while wpisana < wylosowana: # != nierówne
    if wpisana < wylosowana :
        print("podaj większą liczbę")
    else :
        print("podaj mniejszą liczbę")
    ile = ile +1  #ile+=1
    wpisana= int(input("podaj kolejną liczbę :"))
print("udało się wygrana")
#żeby najszybciej znaleźć liczbę stosujemy wyszukiwanie binarne
#dzielimy uporządkowany przedział na poł zależnie od otrzymanej informacji
#początek = 1 koniec = 128
#połowa = początek + koniec / 2
#if wpisana < połowa : koniec = połowa - 1
#else : początek = połowa

 

2 odpowiedzi

0 głosów
odpowiedź 6 października 2020 przez reaktywny Nałogowiec (41,050 p.)
Wydaje mi się, że w komentarzu masz odpowiedź na pytanie zadane w temacie posta :)
komentarz 6 października 2020 przez Rock799 Nowicjusz (130 p.)
Tylko jak napisać ten kod bo tego nie potrafię
0 głosów
odpowiedź 6 października 2020 przez KopfSzmercen Bywalec (2,870 p.)

Co prawda to kod w JS ale bez problemu można pozmieniać na Pythona (nie chce mi się przepisywać kodu), poza tym przy przepisywaniu samemu można lepiej załapać o co chodzi

Pierwszy sposób iteracyjnie

function binarySearch(array, number) {
    const start = 0;
    const end = array.length - 1;
    let index = undefined;
    while (start <= end) {
        const mid = Math.floor((start + end) / 2);
        const element = array[mid];
        if (element === number) {
            index = mid;
            break;
        }
        else if (number < element) {
            end = mid - 1;
        }
        else if (number > element) {
            start = mid + 1;
        }
    }
    if (index !== undefined)
        return index;
    return 'Element not found';
}

Drugi sposób z użyciem rekurencji 

function binarySearchRecursive(array, number, start, end) {
    if (start > end)
        return false;
    const mid = Math.floor((start + end) / 2);
    if (array[mid] === number)
        return true;
    else if (number < array[mid])
        return binarySearchRecursive(array, number, start, mid - 1);
    else
        return binarySearchRecursive(array, number, mid + 1, end);
}

 

Podobne pytania

0 głosów
1 odpowiedź 308 wizyt
0 głosów
3 odpowiedzi 523 wizyt
pytanie zadane 6 lutego 2016 w HTML i CSS przez Paweł123 Nałogowiec (33,500 p.)
–1 głos
1 odpowiedź 849 wizyt

92,583 zapytań

141,434 odpowiedzi

319,669 komentarzy

61,966 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...