NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Soutěž: Machr na algoritmy - Doplňování posloupností

Soutěž již skončila

Zadání

Letní soutěž skončila, tak se zase pustíme do těch menších ;) A začneme hraním s posloupnostmi. Vaším úkolem bude napsat konzolovou aplikaci, která dostane prvních 8 členů posloupnosti a vypíše 8 dalších.
Ukázkový vstup (a<sub>n+1</sub> = an * 2 + 2):

1,4,10,22,46,94,190,382

Výstup:

766,1534,3070,6142,12286,24574,49150,98302

Úkolem programu je tedy odhadnout o jakou posloupnost se jedná a určit jak pokračuje.
Co se týče vstupu, budete posloupnosti číst ze souboru, který bude zadán při spuštění. Vstupní soubor bude obsahovat 200 řádek - na každé řádce bude jedna posloupnost složená z celých čísel oddělených čárkami.
Pokračování posloupností budete psát stejným způsobem do konzole na jednotlivé řádky.

Povolené jazyky: C, C++, C#, Java
Pokud budete chtít použít jiný (nebo budete mít nějaký dotaz k soutěži), zeptejte se v komentářích.

Výhra

Vítěz dostane placku Machr a ocenění do portfolia.

Výhra

Výsledky

Jméno bodů Řešení ( Stáhnout vše )
coells 99 Stáhnout řešení
Martin Dráb 95 Stáhnout řešení
Martin Vejvoda 80 Stáhnout řešení
Gramli 66 Stáhnout řešení
D0ll0k 61 Stáhnout řešení
Aktivity
Avatar
Zdeněk Pavlátka:23.10.2016 17:01

Tentokrát si budeme hrát s posloupnostmi čísel.

Soutěž končí 30. října 12:00, tak se nezapomeň zapojit! :)

Odpovědět
23.10.2016 17:01
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
gcx11
Tvůrce
Avatar
Odpovídá na Zdeněk Pavlátka
gcx11:23.10.2016 17:10

Python?

 
Nahoru Odpovědět
23.10.2016 17:10
Avatar
Odpovídá na Zdeněk Pavlátka
Josef Kuchař - Pepa489:23.10.2016 17:11

Python by možný byl?

Nahoru Odpovědět
23.10.2016 17:11
2x piš, jednou debuguj
Avatar
Zdeněk Pavlátka:23.10.2016 18:02

gcx11
Josef Kuchař - Pepa489
Jedině pokud z toho zvládnete udělat spustitelný soubor... Programy a jejich výstupy budu testovat aplikací, která je spustí a bude kontrolovat jejich výstup.

Nahoru Odpovědět
23.10.2016 18:02
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
gcx11
Tvůrce
Avatar
Odpovídá na Zdeněk Pavlátka
gcx11:23.10.2016 18:26

Nebyl by tím pádem lepší i výstup do souboru? A na to pak diff?

 
Nahoru Odpovědět
23.10.2016 18:26
Avatar
Martin Dráb
Tvůrce
Avatar
Odpovídá na Zdeněk Pavlátka
Martin Dráb:23.10.2016 18:26

Co Pascal/Delphi? Exátko samozřejmě bude.

Ten Python by podle mě nemusel být takový problém. Prostě tvoje testovací utilitka bude must umět spustit program s parametry. Ale je to samozřejmě na tobě.

Nahoru Odpovědět
23.10.2016 18:26
2 + 2 = 5 for extremely large values of 2
Avatar
Odpovídá na Martin Dráb
Zdeněk Pavlátka:23.10.2016 18:30

Pascal není problém, o Delphi skoro nic nevím :/

Nahoru Odpovědět
23.10.2016 18:30
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Odpovídá na Zdeněk Pavlátka
Josef Kuchař - Pepa489:23.10.2016 18:43

Já ti to klidně do exe zabalím přes py2exe ;)

Nahoru Odpovědět
23.10.2016 18:43
2x piš, jednou debuguj
Avatar
Odpovídá na gcx11
Zdeněk Pavlátka:23.10.2016 18:51

Tak změna, s Pythonem by neměl být problém.

Nahoru Odpovědět
23.10.2016 18:51
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Martin Skalík
Tvůrce
Avatar
Martin Skalík:23.10.2016 20:12

Bude zadání vždycky od jedničky?

 
Nahoru Odpovědět
23.10.2016 20:12
Avatar
pocitac770
Tvůrce
Avatar
pocitac770:23.10.2016 20:59

Pfff... Co to sakra je? :D
Tak na tohle fakt nemám mozek, ale rád se podívám na finální řešení, jak jste to vlastně dokázali a ještě se něco přiučím :)

 
Nahoru Odpovědět
23.10.2016 20:59
Avatar
Petr Čech
Tvůrce
Avatar
Odpovídá na Martin Skalík
Petr Čech:23.10.2016 21:05

Posloupnosti můžou začínat čímkoliv

Nahoru Odpovědět
23.10.2016 21:05
the cake is a lie
Avatar
Martin Dráb
Tvůrce
Avatar
Odpovídá na Petr Čech
Martin Dráb:23.10.2016 21:19

ALe předpokládám, že v nich potkáme jen celá čísla (?)

Nahoru Odpovědět
23.10.2016 21:19
2 + 2 = 5 for extremely large values of 2
Avatar
Odpovídá na Martin Dráb
Josef Kuchař - Pepa489:23.10.2016 22:19

to doufám, jinak moje plánované řešení nebude stačit :D

Nahoru Odpovědět
23.10.2016 22:19
2x piš, jednou debuguj
Avatar
Odpovídá na Martin Dráb
Zdeněk Pavlátka:23.10.2016 23:02

viz zadání

na každé řádce bude jedna posloupnost složená z celých čísel oddělených čárkami

Nahoru Odpovědět
23.10.2016 23:02
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Pavol Hejný
Tvůrce
Avatar
Pavol Hejný:23.10.2016 23:16

Mohu použít Node JS?

Nahoru Odpovědět
23.10.2016 23:16
/^(web )?(app )?developer$/
Avatar
Nahoru Odpovědět
23.10.2016 23:26
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
D0ll0k
Člen
Avatar
D0ll0k:24.10.2016 15:17

Budou ve vstupu i desetinná čísla?

Nahoru Odpovědět
24.10.2016 15:17
Veni, vidi, programmato
Avatar
D0ll0k
Člen
Avatar
Odpovídá na D0ll0k
D0ll0k:24.10.2016 15:18

Pardon, nepřečetl jsem si to :-D budou tam jen celá

Nahoru Odpovědět
24.10.2016 15:18
Veni, vidi, programmato
Avatar
Odpovídá na Zdeněk Pavlátka
Libor Šimo (libcosenior):24.10.2016 15:27

Bude v zadaní aj kombinácia záporných a kladných čísiel?

Nahoru Odpovědět
24.10.2016 15:27
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
krepsy3
Tvůrce
Avatar
Odpovídá na D0ll0k
krepsy3:24.10.2016 15:35

Takže jsi na to koukal, jo? Uvažuješ? Protože tohle já fakt nedávám, ne do třicátého :D

Nahoru Odpovědět
24.10.2016 15:35
Programátor je stroj k převodu kávy na kód.
Avatar
Libor Šimo (libcosenior):24.10.2016 16:04

Odpoviem si sam.
Zrejme bude ked sa jedna o cele cisla.

Nahoru Odpovědět
24.10.2016 16:04
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Nahoru Odpovědět
24.10.2016 16:33
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
coells
Tvůrce
Avatar
coells:24.10.2016 19:36

Zdeňku, mohl bys zveřejnit testovací soubor, prosím?
Soubor třeba o 100 posloupnostech s očekávaným výsledkem.
Je dost těžké odhadnout, co si představuješ pod posloupností a řešení při 8 prvcích je vždy nejednoznačné.

 
Nahoru Odpovědět
24.10.2016 19:36
Avatar
Odpovídá na coells
Zdeněk Pavlátka:24.10.2016 20:28

Tak tedy drobná ukázka:

1,4,7,10,13,16,19,22
5,-5,5,-5,5,-5,5,-5
-1,-2,-3,-4,-5,-6,-7,-8
0,0,0,0,0,0,0,0
1,2,4,8,16,32,64,128
12,11,9,6,2,-3,-9,-16
256,245,234,223,212,201,190,179
1,2,5,14,41,122,365,1094
0,1,1,2,3,5,8,13
4,9,16,25,36,49,64,81

V podobném stylu bude vstupní soubor. "Funkční" část programu (tedy výstup) budu hodnotit procenty. Níže je řešení se vzorci pro každou z ukázek: (n = 1, 2, 3, ...):

an = a<sub>n-1</sub> + 3 | an = 3n - 2
25,28,31,34,3­7,40,43,46

an = -a<sub>n-1</sub> | an = 5 * (-1)<sup>n+1</sup>
5,-5,5,-5,5,-5,5,-5

an = a<sub>n-1</sub> - 1 | an = -n
-9,-10,-11,-12,-13,-14,-15,-16

an = 0
0,0,0,0,0,0,0,0

an = 2a<sub>n-1</sub> | an = 2<sup>(n-1)</sup>
256,512,1024,­2048,4096,8192,16384,327­68

an = a<sub>n-1</sub> - n + 1
-24,-33,-43,-54,-66,-79,-93,-108

an = a<sub>n-1</sub> - 11 | an = 267 - 11n
168,157,146,1­35,124,113,102,91

an = a<sub>n-1</sub> * 3 - 1
3281,9842,295­25,88574,265721,797162,2­391485,7174454

Fibonacciho posloupnost (an = a<sub>n-1</sub> + a<sub>n-2</sub>)
21,34,55,89,1­44,233,377,610

an = (n + 1)<sup>2</sup>
100,121,144,1­69,196,225,256,289

Nahoru Odpovědět
24.10.2016 20:28
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
B42P6
Člen
Avatar
B42P6:29.10.2016 15:10

Zdravím,
mohol by si prosím popísat čo sa pokladá za "správne" pokračovanie postupnosti. Teraz tomu rozumiem tak že "správne pokračovanie je to, pri ktorom na novovzniknutú postupnost platí rovnaký vzorec pre každý člen".
Tu ale nastáva problém s tým ,že je možné vytvorit mnoho (myslím nekonečno, ale niesom si istý) "správných" pokračovaní. Napr:

1,4,7,10,13,16,19,22

a(n) = 3n - 2
25, 28, 31, 34, 37, 40, 43, 46


a(n)=a(n-7)+a(n-6)+a(n-5)+a(n-4)
34, 46, 58, 70, 91, 121, 160, 208


a(n)=a(n-7)2+a(n-4)2
34, 46, 58, 70, 100, 130, 160, 208


a(n)=a(n-7)+21
(pokračovanie uz neuvádzam, iba vzorec)


a(n)=a(n-7)*22


atd.

Nahoru Odpovědět
29.10.2016 15:10
'long long long' is too long for GCC
Avatar
B42P6
Člen
Avatar
Odpovídá na B42P6
B42P6:29.10.2016 15:16

Odporúčal by som asi takúto definíciu:
"Správne pokračovanie je to pri ktorom platí pre každý člen novovzniknutej postupnosti nerekruzívny (t.j. vo vzorci sa nevyskytuje iný člen)". To by ale znamenalo že nemôžeš použit Fibonacciho postupnost.

Nahoru Odpovědět
29.10.2016 15:16
'long long long' is too long for GCC
Avatar
Martin Dráb
Tvůrce
Avatar
Odpovídá na B42P6
Martin Dráb:29.10.2016 15:25

V tomhle máš samozřejmě pravdu – existuje nekonečně mnoho posloupností, které mají prvních osm členů (a_{0}, ..., a_{7}) shodných se vstupem a pokračování je jiné, než požadovaný výstup. Spíš to vidím na použití zdravého rozumu (= vzorce generující posloupnosti nebudou patřit k těm pekelným). Je fakt, že zkrátka potřebuješ trochu... štěstí...

Na druhou stranu, tebou uváděné formule se pro případ, kdy znáš prvních osm členů, tak úplně nehodí. Pokud znám prvních osm členů a při výpočtu n-tého, potřebuju znát n-7mý, tak je v podstatě většina těch známých členů "napevno" definovaná (nedostaneš se k ní použitím tvojí formule, protože je jejich pořadové číslo příliš nízké).

Nahoru Odpovědět
29.10.2016 15:25
2 + 2 = 5 for extremely large values of 2
Avatar
coells
Tvůrce
Avatar
Odpovídá na B42P6
coells:29.10.2016 15:30

Každou posloupnost můžeš vyjádřit rekurentně.
Každou posloupnost můžeš vyjádřit vzorcem bez závislosti na předchozích členech (i Fibonacciho).
Navíc pro libovolný 9. prvek je možné vždy najít vzorec, kterým bude pokračovat.

 
Nahoru Odpovědět
29.10.2016 15:30
Avatar
Odpovídá na B42P6
Zdeněk Pavlátka:29.10.2016 18:30

správne pokračovanie je to, pri ktorom na novovzniknutú postupnost platí rovnaký vzorec pre každý člen

tak to také je. Pro účely téhle soutěže hledej ty vzorce co nejjednodušší. Často půjde o aritmetické a geometrické posloupnosti.
Plus významné posloupnosti jako Fibonacciho posloupnost nebo posloupnost prvočísel.

Nahoru Odpovědět
29.10.2016 18:30
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
coells
Tvůrce
Avatar
Odpovídá na Martin Dráb
coells:29.10.2016 23:12

Dokonce se to dá formalizovat pomocí a priori definice třídy modelu a pravděpodobnosti její správnosti pod posteriorem.

Zrovna prvočísla teda spadají do kategorie pekelných předpisů ;-)
Ale je mi jasné, že s tímhle si středoškolská matematika neporadí, takže je to aspoň o to zajímavější.

Zdeněk Pavlátka
Jedna posloupnost naoplátku, uhádneš pokračování? 10,11,13,17,1­9,21,23,29

 
Nahoru Odpovědět
29.10.2016 23:12
Avatar
Martin Dráb
Tvůrce
Avatar
Odpovídá na coells
Martin Dráb:29.10.2016 23:20

Ano, prvočísla mě překvapila.

Hm, nedá se říci, že bych použil nějakou extra vysokoškolskou matiku. Spíš věci, které se z daného úhlu pohledu na střední neukazovaly (resp. nepamatuju si to).

Nahoru Odpovědět
29.10.2016 23:20
2 + 2 = 5 for extremely large values of 2
Avatar
coells
Tvůrce
Avatar
Odpovídá na Martin Dráb
coells:30.10.2016 0:45

To mě taky, ale chápu, že dokud člověk nenarazil na obecnou algebru, tak se tváří poměrně jednoduše.

 
Nahoru Odpovědět
30.10.2016 0:45
Avatar
Odpovídá na coells
Zdeněk Pavlátka:30.10.2016 0:53

Prvočísla, Fibonacciho posloupnost a pár dalších budou bonusové, většina vstupu se bude skládat z aritmetických a geometrických posloupností a jejich kombinace (an = q × a<sub>n-1</sub> + d) .

A k té tvojí posloupnosti mě nenapadá žádné pravidlo... (teoreticky tam může být cokoli)

Nahoru Odpovědět
30.10.2016 0:53
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
coells
Tvůrce
Avatar
Odpovídá na Zdeněk Pavlátka
coells:30.10.2016 1:04

Jak říkám, to je v pořádku, se záludnostmi je to zábavnější.

Moje posloupnost jsou "prvočísla", je to jen ukázka, proč jsou složitá.
Pokud definuju a[n] jako nejmenší číslo větší než a[n-1] a nesoudělné s a[1], ..., a[n-1], dostanu pro:

a[1] = 2: 2,3,5,7,11,13­,17,19,23,...
a[1] = 3: 3,4,5,7,11,13­,17,19,23,...
a[1] = 10: 10,11,13,17,1­9,21,23,29,31,­...

 
Nahoru Odpovědět
30.10.2016 1:04
Avatar
Odpovídá na coells
Martin Vejvoda:30.10.2016 12:39

Můžu se zeptat na vzorec posloupnosti prvočísel? Nikde jsem to nenašel

Nahoru Odpovědět
30.10.2016 12:39
matika > informatika
Avatar
Petr Čech
Tvůrce
Avatar
Odpovídá na Martin Vejvoda
Petr Čech:30.10.2016 12:58

Na posloupnost prvočísel neexistuje žádný obecný vzorec, hledají se relativně komplikovaně, je to součástí kryptografie

Nahoru Odpovědět
30.10.2016 12:58
the cake is a lie
Avatar
Odpovídá na Petr Čech
Martin Vejvoda:30.10.2016 13:01

Díky, tak nějak jsem to čekal.

Jinak můžu se zeptat, kdy asi bude soutěž vyhodnocena?

Nahoru Odpovědět
30.10.2016 13:01
matika > informatika
Avatar
coells
Tvůrce
Avatar
Odpovídá na Martin Vejvoda
coells:30.10.2016 13:20

Vzorců je spousta, ale neexistuje žádný obecný.
Je to věc, která úzce souvisí s Riemannovou hypotézou https://en.wikipedia.org/…n_hypothesis
To je pro změnu jeden z Problémů milénia http://www.claymath.org/…ize-problems

Když tohle pominu, tak "býti prvočíslem" je vlastnost čísla, nesouvisí s číselnými posloupnostmi.
Na tohle se už žádný obecný program napsat nedá, například 2,6,12,18,30,­42,60,72,...
Další prvek je 102, protože člen v tomhle případě musí splňovat vlastnost "býti průměrem prvočíselných dvojčat".
U téhle posloupnosti ani není jisté, že je nekonečná.

 
Nahoru Odpovědět
30.10.2016 13:20
Avatar
Šimon Rataj
Člen
Avatar
Odpovídá na Martin Vejvoda
Šimon Rataj:1.11.2016 18:43

Není to úplně posloupnost, ale udělal jsem tuto funkci v php, kde parametr int je limit.

function primeNumbers($int) {
    for($i = 0; $i<=$int; $i++) {
      $r[0] = 1;
      if($i>0)
        $r[$i-1] = $i;
      unset($r[0]);
    };
    foreach($r as $k => $v) {
      for($i = $v; $i<$int; $i++) {
        if(isset($r[$i]) && $r[$i]%$v==0)
          unset($r[$i]);
      };
    };
    return $r;
  };
Editováno 1.11.2016 18:43
 
Nahoru Odpovědět
1.11.2016 18:43
Avatar
Odpovídá na Šimon Rataj
Martin Vejvoda:1.11.2016 18:46

Díky, ale PHP vůbec neznám, takže se v tom moc nevyznám

Editováno 1.11.2016 18:46
Nahoru Odpovědět
1.11.2016 18:46
matika > informatika
Avatar
Šimon Rataj
Člen
Avatar
Šimon Rataj:1.11.2016 18:49

Na této stránce to funguje.

 
Nahoru Odpovědět
1.11.2016 18:49
Avatar
Zdeněk Pavlátka:8.11.2016 21:21

Díky všem za účast, zde jsou výsledky:

coells - 99 bodů
Správnost výsledků:

  • 99,5 % -> 74 bodů

Program:

  • špatně byla jen prvočísla ;)
  • kód je stručný, komentovaný

Splnění zadání:

  • výstup jsi sice psal do souboru místo do konzole, ale u toho pythonu to bylo trochu nejasné :-S

Martin Dráb - 95 bodů
Správnost výsledků:

  • 100 % -> 75 bodů

Program:

  • pěkný kód (jen je asi zbytečné psát return; do metod které nic nedělají)
  • metody jsou popsané v komentářích

Splnění zadání:

  • vstup jsi měl číst ze souboru, ne z konzole -> -5 bodů

Gramli - 66 bodů
Správnost výsledků:

  • 62,3 % -> 46 bodů

Program:

  • u spousty posloupností tvůj výtvor střídavě mění znaménka (lichá čísla měla opačné znaménko)
    • např. pro zadání 2,2,2,2,2,2,2,2 tvůj program vypsal -2,2,-2,2,-2,2,-2,2
    • tvoje "konstantní posloupnost" ignoruje znaménka a generuje je střídavě
  • až na mínusy funguje dobře pro aritmetické a geometrické posloupnosti
  • kód nevypadá špatně, ale nějak jsi zapomněl na komentáře
  • spoléháš na to, že konce řádků ve vstupním souboru jsou '\n' (v tomhle případě ale jsou "\r\n")

D0ll0k - 61 bodů
Správnost výsledků:

  • 72,1 % -> 54 bodů

Program:

  • dělíš nulou, porovnáváš desetinná čísla pomocí == a !=
  • díky používání desetinných čísel ti to nevychází přesně
  • veliká čísla vypisuješ ve vědecké notaci
  • s komentáři ses tedy nepředal

Splnění zadání:

  • vstupní soubor měl být zadán mnou, ne napsaný v kódu -> -3 body

Pozn.:

  • musel jsem odstranit většinu kódu pro výstup, abych to mohl automaticky testovat

Martin Vejvoda - 80 bodů
Správnost výsledků:

  • 85,3 % -> 63 bodů

Program:

  • většinou, když tvůj program vrátil špatné výsledky, bylo to kvůli přetečení u geometrických posloupností
  • kód nevypadá špatně, je dostatečně komentovaný

Splnění zadání:

  • vstupní soubor měl být zadán mnou, ne napsaný v kódu -> -3 body

Placku tedy získává coells, Martin Dráb Gratuluji :)

Nahoru Odpovědět
8.11.2016 21:21
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Martin Dráb
Tvůrce
Avatar
Odpovídá na Zdeněk Pavlátka
Martin Dráb:8.11.2016 21:38

vstup jsi měl číst ze souboru, ne z konzole -> -5 bodů

V zadání mi nepřišlo specifikované, jakým způsobem je soubor programu předhozen, a tak jsem předpokládal, že jeho obsah uvidím na standardním vstupu. Ale nevermind.

Nahoru Odpovědět
8.11.2016 21:38
2 + 2 = 5 for extremely large values of 2
Avatar
Gramli
Tvůrce
Avatar
Odpovídá na Zdeněk Pavlátka
Gramli:8.11.2016 22:25

Tak to sem solidne posmolil.. Kazdopadne super napad na machra. Diky za hodnoceni :-)

Nahoru Odpovědět
8.11.2016 22:25
Kdo to říká ten to je...
Avatar
Jan Lupčík
Tvůrce
Avatar
Jan Lupčík:8.11.2016 22:39

coells a Martin Dráb: 99,5% a 100% úspěšnosti - wow, gratuluji hoši, obdivuji vás. Jen tak dál! :)

Nahoru Odpovědět
8.11.2016 22:39
TruckersMP vývojář
Avatar
Martin Dráb
Tvůrce
Avatar
Odpovídá na Jan Lupčík
Martin Dráb:8.11.2016 23:08

Ono tady také dost záleželo na věku – na tom, jak moc matiky jsi již potkal.

Moje řešení bylo založené téměř čistě na řešení soustav lineárních rovnic (Gaussova eliminace), což s trochou snahy pokryje "všechny" klasické posloupnosti (a některé, u kterých by to běžný člověk fakt nečekal).

Prvočísla tam byla prakticky natvrdo: kdyby ta posloupnost byla posloupnost prvočísel snížených o dvojku, tak bych ji neměl.

Jestli máme ty ködy ještě nějak speciálně zveřejnit, tak to tam trochu více rozeberu.

Nahoru Odpovědět
8.11.2016 23:08
2 + 2 = 5 for extremely large values of 2
Avatar
Odpovídá na Martin Dráb
Zdeněk Pavlátka:8.11.2016 23:15

Vítězové by je zveřejnit měli.

Nahoru Odpovědět
8.11.2016 23:15
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
coells
Tvůrce
Avatar
Odpovídá na Martin Dráb
coells:8.11.2016 23:53

Zírám na tvůj kód a nevěřícně kroutím hlavou, kolik práce jsi musel mít jenom s tím, než jsi to odladil?
Klobouk dolů! :-)

Jenom si dávej pozor na ty složitější modely.
Když máš na vstupu 8 čísel, bude mít polynomiální model tendenci na overfit.

 
Nahoru Odpovědět
8.11.2016 23:53
Avatar
Martin Dráb
Tvůrce
Avatar
Odpovídá na coells
Martin Dráb:9.11.2016 0:04

Zírám na tvůj kód a nevěřícně kroutím hlavou, kolik práce jsi musel mít jenom s tím, než jsi to odladil?

Klobouk dolů!

Kupodivu jsem s odladěním funkčnosti moc problémů neměl. Gaussovku jsem odladil dost rychle (byly tam asi dvě menší chyby, na které jsem přišel prakticky hned). No dobře, nezabývá se případy, kdy soustava rovnic nemá řešení (tam si v zásadě nějaké (špatné) vymyslí).

Víc práce jsme měl tam s těmi šablonami, což byla z větší části práce zbytečná (myslím to procházení std::tuple). Jen jsem si chtěl zkusit, zda jsem tyhle věci ještě nezapomněl :-).

Jenom si dávej pozor na ty složitější modely.

Když máš na vstupu 8 čísel, bude mít polynomiální model tendenci na overfit.

Myslím, že jsem tam snad nikdy nevyužil všech 8 čísel pro tvorbu vzroce posloupnosti. Vždy tam nějaké zůstalo, na kterém se vytvořený vzorec vyzkoušel. Když vzorec nevyšel, nepoužil se.

Polynomiální modely jsem tam zaváděl, abych podchytil větší množství posloupností (hlavně ty modely, kde byla i explicitní závislost na indexu členů). Nevím, zda to ve skutečnosti něco přineslo, do takové hloubky jsem nad tím nepřemýšlel. Jakmile fungovala G. eliminace, tak tyhle věci byly v zásadě zadarmo.

Nahoru Odpovědět
9.11.2016 0:04
2 + 2 = 5 for extremely large values of 2
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 50 zpráv z 62.