Code Kata: staňte sa lepším programátorom
Code Kata: staňte sa lepším programátorom
@Matajon Ale řekl bych, že tohle tu katu nesplní ne? ;) Vypíše se Fizz[]Buzz, ale ne ostatní čísla do stovky.
-
- můj třetí příspěvek
- Příspěvky: 3
- Registrován: čtv srp 09, 2012 10:08
- Zařízení: Samsung Omnia 7
- Bydliště: Dobruška
Code Kata: staňte sa lepším programátorom
To jsem si taky uvědomil chvíli po tom, co jsem to poslal a ten příspěvek jsem smazal.RSTEIN píše:@Matajon Ale řekl bych, že tohle tu katu nesplní ne? ;) Vypíše se Fizz[]Buzz, ale ne ostatní čísla do stovky.
-
- častý přispěvatel
- Příspěvky: 228
- Registrován: stř bře 28, 2012 12:46
- Zařízení: ano
Code Kata: staňte sa lepším programátorom
Tak daj fungujúce riešenieMatajon píše:To jsem si taky uvědomil chvíli po tom, co jsem to poslal a ten příspěvek jsem smazal.
Code Kata: staňte sa lepším programátorom
Úplně jsem zapomněl tuhle KATU odevzdat (takže se zpožděním):
Bude tenhle týden zas další? I když byla tahle jednoduchá, tak je to příjemný procvičení na pár minutek (tahle doslova na pár).
Kód: Vybrat vše
private static void fizzbuzz_normal()
{
string output = string.Empty;
for (int i = 0; i <= 100; i++)
{
if (i % 3 == 0)
{ output += "fizz"; }
if (i % 5 == 0)
{ output += "buzz"; }
if (output == string.Empty)
{ output = i.ToString(); }
Console.WriteLine(output);
output = string.Empty;
}
}
-
- častý přispěvatel
- Příspěvky: 228
- Registrován: stř bře 28, 2012 12:46
- Zařízení: ano
Code Kata: staňte sa lepším programátorom
Napíšte funkciu na výpočet n-tého Fibonacciho čísla. Túto funkciu postupne zdokonaľujte, vykonajte 2-3 iterácie zlepšovania.
Termín: štvrtok 6.8.2012
Hint k iterácií:
Rekurzia -> Rekurzia s pamäťou / Lazy vyhodnocovanie -> Rekurzia s continuation -> cyklus (Fold fo funkcionálnom jazyku)
(priamy matematický výpočet zo zlatého rezu, Pasacalovho trojuholníka)
(písmo je rovnakej farby ako pozadie, je potrebné blok označiť a ukáže sa)
Termín: štvrtok 6.8.2012
Hint k iterácií:
Rekurzia -> Rekurzia s pamäťou / Lazy vyhodnocovanie -> Rekurzia s continuation -> cyklus (Fold fo funkcionálnom jazyku)
(priamy matematický výpočet zo zlatého rezu, Pasacalovho trojuholníka)
(písmo je rovnakej farby ako pozadie, je potrebné blok označiť a ukáže sa)
-
- častý přispěvatel
- Příspěvky: 228
- Registrován: stř bře 28, 2012 12:46
- Zařízení: ano
Code Kata: staňte sa lepším programátorom
Nikto nič? Veď je to jednoduché?
-
- nováček
- Příspěvky: 9
- Registrován: pon lis 14, 2011 17:23
- Zařízení: Nokia Lumia 800 (modrá), Samsung Omnia 7
Code Kata: staňte sa lepším programátorom
Kód: Vybrat vše
static int NthFibonacci(int n)
{
if (n == 0)
return 0;
else if (n == 1)
return 1;
else
return NthFibonacci(n - 1) + NthFibonacci(n - 2);
}
static int NthFibonacci2(int n)
{
int result = 0;
int prev = 0;
int prevPrev = 0;
for(int i = 0; i <= n; i++)
{
if (i == 1)
{
result = 1;
}
else
{
result = prevPrev + prev;
}
prevPrev = prev;
prev = result;
}
return result;
}
-
- častý přispěvatel
- Příspěvky: 228
- Registrován: stř bře 28, 2012 12:46
- Zařízení: ano
Code Kata: staňte sa lepším programátorom
Skús ešte jednu iteráciu, napríklad niečo z hintu
-
- častý přispěvatel
- Příspěvky: 228
- Registrován: stř bře 28, 2012 12:46
- Zařízení: ano
Code Kata: staňte sa lepším programátorom
Nedá mi to nespomenúť. Rozmýšľal som, ako vygenerovať všetky permutácie stringu (alebo všeobecne zoznamu), lenivo som to hodil do google a bol som zhrozený, ako zložito to ľudia píšu. Od TDD mánie až po objektový fetišizmus. Tak som si to skúsil, v F# to išlo ľahko ale bol som prekvapený, že v C# to tiež nie som schopný napísať jednoducho, jedine, že doslova prepíšem F# kód. Ako by ste generovali permutácie vy?
-
- častý přispěvatel
- Příspěvky: 228
- Registrován: stř bře 28, 2012 12:46
- Zařízení: ano
Code Kata: staňte sa lepším programátorom
No cykly, práve že v C# som sa hrozne zasekol. V F# som vymyslel toto
ale C# bol len obyčajný prepis na
Daj tie cykly, asi už neviem uvažovať jednoducho. Najmä keď som videl rôzne objektové svinstvá, čo mi google našiel,
Kód: Vybrat vše
let rec permutations (input: 'a list) = seq {
if (input.IsEmpty) then
yield []
else
for i in input do
yield! input
|> List.filter (fun x-> x<> i)
|> permutations
|> Seq.map (fun x->i::x)
}
Kód: Vybrat vše
public IEnumerable<IEnumerable<T>> Permutation<T>(IEnumerable<T> input)
{
if (input == null || !input.Any()) yield break;
if (input.Count() == 1) yield return input;
foreach (var item in input)
{
var next = input.Where(l => !l.Equals(item)).ToList();
foreach (var perm in Permutation(next))
{
yield return (new List<T>{item}).Concat(perm);
}
}
}
Code Kata: staňte sa lepším programátorom
nechce sa mi to pisat ale asi takto: http://php.vrana.cz/permutace.php" onclick="window.open(this.href);return false;
proste jednoducha rekurzia:
Edit: vidim, ze ty to v tom C# mas podobne.. Co sa ti na tom nepaci?
proste jednoducha rekurzia:
Kód: Vybrat vše
foreach i in X
permutacia = (i, permutacia X\i)
-
- častý přispěvatel
- Příspěvky: 228
- Registrován: stř bře 28, 2012 12:46
- Zařízení: ano
Code Kata: staňte sa lepším programátorom
Ten prepis do C# sa mi nezdá, je to nejaké divné a kostrbaté a ak by som nepoužil yield ani neviem ako by som to napísal.
V taktom Haskelli, tam by to bola krása
V taktom Haskelli, tam by to bola krása
Kód: Vybrat vše
perms [] = [[]]
perms xs = [ x:ps | x <- xs , ps <- perms ( xs\\[x] ) ]
Code Kata: staňte sa lepším programátorom
Napadla ma nova kata:
Napiste program, ktory pre danu permutaciu, vrati dalisu v poradi (pri lexikografickom usporiadani)
Napiste program, ktory pre danu permutaciu, vrati dalisu v poradi (pri lexikografickom usporiadani)
-
- častý přispěvatel
- Příspěvky: 228
- Registrován: stř bře 28, 2012 12:46
- Zařízení: ano
Code Kata: staňte sa lepším programátorom
To daval Krylmatoman píše:Napadla ma nova kata:
Napiste program, ktory pre danu permutaciu, vrati dalisu v poradi (pri lexikografickom usporiadani)
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 2 hosti