Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Permutacije #1

Open
wants to merge 1 commit into
base: gh-pages
Choose a base branch
from
Open

Permutacije #1

wants to merge 1 commit into from

Conversation

JernejB
Copy link
Member

@JernejB JernejB commented Mar 27, 2014

Presentation about permutations (for now).
TODO:
Permutations w/o repetition
Combinations w/ and w/o repetition


</textarea>

<script src="../remark.min.js"></script>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

si že preveril, če mogoče ne pride do zamika, če daš ta script v head?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Če dam v head mi remark sploh ne premelje stvari ki so v textarea. Mal mi je to čudno, ampak bo očitno treba met kar na koncu body-ja.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

niti ni nujno, da bo kaj hitreje zrenderiralo. najprej prebere html dokument in potem (si predstavljam), ga v eni niti zrenderira, z drugo pa zahteva ostale resource. v tem primeru bo vedno timedelta med prikazanim textarea in polno-zrenderanim remarkom. bo @ddksr najbrž vedel več.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Trenutno je najboljša praksa, da je v nogi. Žal ni tako lepo, da bi renderiral in vlekel spremembe isto časno. Je pa res, da nato dobljen rezultat (recimo velik minimiziran css) lahko renderira nekaj trenutkov vzporedno in ti pokvari stran za nekaj sekund. Ampak za css predpostavljamo, da nima kode, ki bi se izvajala in ga zato damo v head, da se pripravlja, medtem ko mogoče (odvisno od brskalnika) on že isto časno kaj naloži.

Pri scriptu je pa problem, da se navadno nalaga dlje, prav tako pa je potrebno zagotovit, da bodo vsi html resursi, ki jih JS potrebuje, na voljo.

To sta možna samo dva načina: torej script tag na dnu strani, ali pa v head:
$(document).ready(function () { POZENI_REMARK(); });

To je to.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

kaj pa <script src="../remark.min.js"></script> v <head> in <script src="../remark-script.js"></script> (ki inicializira remark) na dnu? to bi moralo delati, ne? saj si tako poskušal, @JernejB ?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Res je, moja napaka. Oboje sm dal v head in valda da ni delal. V tvojem
primeru pa stvar dela tko kot more (ne prika¾e za moment golega texta).

On Tue, Apr 1, 2014 at 2:57 PM, kernc [email protected] wrote:

In p/permutacije.html:

+
+
+# Kombinacije brez ponavljanja?
+* Prej¹nji primer solate
+
+# Kombinacije s ponavljanjem?
+* Spomnimo se primera s solato:

  • * .green[zelena solata], .green[zelena solata], .green[zelena solata]
  • * .green[zelena solata], .green[zelena solata], .red[paradi¾nik]
  •   In tako dalje
    
    +</textarea>
    +
    +<script src="../remark.min.js"></script>

kaj pa <script src="../remark.min.js"></script> v in <script src="../remark-script.js"></script> (ki inicializira remark) na dnu? to
bi moralo delati, ne? saj si tako posku¹al, @JernejBhttps://github.com/JernejB?

Reply to this email directly or view it on GitHubhttps://github.com//pull/1/files#r11158244
.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pi*** github po*** po pomoti sem klikno Close form in mi je zbriso vse, kar sem napiso.

Torej skrajšana verzija moje uničene razlage.
Če je lib v HEAD, skripta na koncu BODY:

  • N časa je vse belo, ker se lovda skript, potem pa se začne renderiranje BODYa
  • M časa je vse popačeno, ker je zlovdan html, remark pa še ni spremenil zadeve v slajde
  • po N+M časa vidimo slajde
    Če je oboje v nogi:
  • N+M časa je vse popačeno, po tem času pa vidimo slajde

Torej jaz bi rekel takole: tole je robni primer, ko damo knjižnico v head in ostalo v body, ker imamo raje, da vidi user belo kot pa popačeno (čeprav verjetno bo totalno isto, razen če ima zelo počasno povezavo). Sicer v spetu je navada takšna, da zadeva vsaj nekak zgleda, dokler se ves html in js ne naloži (torej vidimo vsebino, ni neki zmeštrano, ko pa se JS naloži pa se mogoče izgled malo 'popravi').

@kernc
Copy link
Member

kernc commented Mar 30, 2014

manjka sprememba v index.md, link na novo prezentacijo.

- .red[paradižnik], .orange[korenje], .green[zelena solata]
<img src = "../resources/permutacije/salad.png" style="position:absolute; float:right"/>
---
# Solata:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

to ponavljanje cele vsebine slajdov ni kul. poglej pri mojih dveh primerih, kako narediš, da se slajd "nadaljuje v naslednjega": -- separator namesto ---.

@kernc
Copy link
Member

kernc commented Mar 31, 2014

če odštejem vse slajde, kjer vsak slajd introduca en stavek, niti ne nujno tematsko ločen od naslova, ki mu sledi, jih uporabnih naštejem ~6. kar sicer ni nobeno merilo.

pogrešam pa vsaj en "ta težek" slajd bolj podrobno o vseh, npr. tabelarično, kok možnih vrednosti predstavljajo in kako zračunamo in to. pač tist z binomskim členom vse spustiš, ampak klasično množenje pa potenciranje bojo pa že prenesl za videt in slišat (kot rečeno, zapomnit si ne rabjo nič)?

pa če poveš, kako je binarni številski sistem permutacija s ponavljanjem dveh elementov in desetiški sistem permutacija s ponavljanjem desetih in potem pokažeš, kako dejansko lahko s tistim številom predstavimo točno toliko vrednosti, kot je napovedala enačba.

pač ziher se da to narest bolj progresivno, kot je zdej, pa še vedno čist užitno za vse >10let (predvsem s par praktičnimi primeri za vsako temo). ja, ne?


In tako dalje


Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

na koncu manjka še en zanimiv slajd:

---
# Permutacije in računski problemi
Določene probleme rešujemo s **preiskovanjem prostora stanj**:
generiramo vse možne potencialne rešitve (vse možnosti, npr. vse permutacije)
in za vsako preverimo, če je dejansko pravilna rešitev.

Npr. [Einsteinova "Zebra" uganka](http://sl.wikipedia.org/wiki/Einsteinova_uganka):
> Imamo pet hiš, vsaka v drugi barvi. V vsaki hiši je oseba druge narodnosti, vsak pije vsak svojo vrsto pijač, kadi svojo znamko cigaret in ima svojega hišnega ljubljenčka. Vsaka od lastnosti (narodnost, barva hiše, znamka cigaret, pijača in žival) se pojavi natanko enkrat.
> 1. Britanec živi v rdeči hiši.
> 2. Šved ima psa.
> ...
> 14. Norvežan živi poleg modre hiše.
> 15. Oseba, ki kadi Blend ima, soseda, ki pije vodo.
>
> Kdo je lastnik zebre?

Preprosta [rešitev v Pythonu](https://gist.github.com/JuanitoFatas/2653290)
([razlaga](https://youtu.be/Qd84SEf6GbM)).
Rešitev v [ostalih programskih jezikih](http://rosettacode.org/wiki/Zebra_puzzle).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Namesto Einsteinove uganke mogoče kakšna taka bolj primerna:

Štirje otroci (Ana, Bor, Cene, Deni) imajo doma različne živali (muca, pes, ptica, riba).
Ugotovi, čigava je katera žival.

  1. Borova žival ne zna leteti.
  2. Žival Ceneta in Denija ima dlako.
  3. Denijeva žival ne laja.
# coding: utf-8
import itertools

animals = 'muca pes ptica riba'.split()
names = 'Ana Bor Cene Deni'.split()

def solve():
    def owns(Name, animal): return Name == animal
    permutations = list(itertools.permutations(animals))  # generiramo vse možnosti
    return next((Ana, Bor, Cene, Deni)
            for (Ana, Bor, Cene, Deni) in permutations  # preverimo vsako možnost
            # če ustreza naslednjim podanim pogojem
            if not owns(Bor, 'ptica')  # 1. Borova žival ne zna leteti
            if not owns(Deni, 'pes')   # 3. Denijeva žival ne laja
            if ((owns(Cene, 'muca') or owns(Cene, 'pes')) and
                (owns(Deni, 'muca') or owns(Deni, 'pes'))))

print(zip(names, solve()))
[('Ana', 'ptica'), ('Bor', 'riba'), ('Cene', 'pes'), ('Deni', 'muca')]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants