Raku kurss / Padziļināti / Operatori / Metaoperatori / Exercises / Visi faktoriāli uzreiz

Risinājums: Visi faktoriāli uzreiz

Šeit ir iespējamais uzdevuma risinājums.

Kods

say [\*] 1..6;

🦋 Programmas pirmkodu var atrast failā factorial.raku.

Izvade

(1 2 6 24 120 720)

Komentāri

  1. Atpakaļsvītra iekavās pārveido [*] par trīsstūra redukciju. Tā vietā, lai samazinātu sarakstu līdz vienai vērtībai, tā saglabā katru daļējo reizinājumu: 1, tad 1*2, tad 1*2*3 un tā tālāk.

  2. Katrs daļējais reizinājums 1*2*...*k ir tieši k!, tāpēc rezultāts ir faktoriālu saraksts no 1 līdz 6. Parasta [*] 1..6 būtu devusi tikai pēdējo no tiem, 720.

Kursa navigācija

Visi faktoriāli uzreiz   |   Veidot URL