Články


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:

Collatzův problém v PHP

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).

Collatzův problém v PHP

Collatzův problém v PHP

Collatzův problém v PHP

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:

Collatzův problém v PHP

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