AI píše kód
Jde o hru, která posouvá vzdělávání. A učitele baví. Nebo ne?
Testovat, jak si ChatGPT poradí s požadavkem na vytvoření kódu v nějakém programovacím jazyku, je docela zábavné. S jednoduchými skripty nemá problém a je zajímavé porovnat si váš zápis s výstupem umělé inteligence. Já jsem zvolil PHP a známý algoritmus zvaný Collatzův problém. Poměrně dávno jsem jej v jednom článku popisoval, považuji jej totiž za výborný prostředek pro výuku.
Zadal jsem úkol bez dalšího upřesnění: "Napiš program v PHP pro Collatzův problém". Odpověď byla ve formě vysvětlení, o co jde (na to jsem se ani neptal, ale co kdybych nevěděl) a vytvoření skriptu. Z kódu lze vyčíst, že byla použita funkce, že bylo zvoleno číslo 5 a odpověď ve tvaru "počet kroků".
Collatzův problém je matematický problém, který počítá počet kroků, které je potřeba provést pro dosáhnutí jedničky při opakovaném používání následujících pravidel:
- pokud je číslo sudé, vydělíme ho 2;
- pokud je číslo liché, vynásobíme ho 3 a přičteme 1.
Zde je funkce v PHP, která řeší Collatzův problém pro zadané číslo:
Jenže mne zajímaly i průběžné výpočty. A tak jsem se o ně řekl také. Výsledek? Vypsala se mi celá řada čísel přesně tak, jak jsem očekával. V odpovědi je ale chyba (počet dílčích výsledků je 16, má být pouze 5).
Požádal jsem o vysvětlení. A odpověď?
Omlouvám se za chybu v předchozí odpovědi. V předchozím příkladu jsem uvedl špatný počet kroků pro dosáhnutí jedničky při začátku s číslem 5. Správný počet kroků je 5.
Zde je opravený kód pro funkci collatz_steps, která řeší Collatzův problém a vrací počet kroků a seznam čísel:
Chybí formulář pro volbu čísla, takže když použiji číslo 27, musím jej zapsat do výstupu collatz_steps(27). Mně to ale stačí, cílem bylo zjistit, jak si umělá inteligence poradí s vytvořením skriptu.
15-01-2023