minkkilaukku

linkit: http://freemasonry.bcy.ca/texts/gardeners.html
lainauksia:
- Force and might make right
- Mutta se portti on ahdas ja tie kaita, joka vie elämään, ja harvat ovat ne, jotka sen löytävät.
- Mikä Mariana maloilla, se vappuna vaoilla
Liittynyt sitten
Muokkaa profiilia289 aloitusta · 3199 kommenttia
- No heh, olihan se sen veli. Jos siis Noel tuohon aikaan oli Camillan uus mies.
- Aletaankohan Camillan ja Akin koomamaailmaa näyttämään?
- Mitä Rantabaarin tunnuslaulussa oikeen lauletaan? Onko se "Gimme Lola, gimme lola"?
- Kokeile näin:
var myScript = document.createElement("script");
myScript.src = "https://code.jquery.com/jquery-2.2.4.min.js";
document.body.appendChild(myScript);
Uudella tyhjällä välilehdellä itselleni tulee tuon kanssa kyllä errori:
"Refused to load the script 'https://code.jquery.com/jquery-2.2.4.min.js' because it violates..." - Tai siis eihän se keskinopeuksilla voi mennä, mutta että maalla kannattaa mennä siellä missä se on nopeampaa ja vedessä sitten sitä tuleeko siitä nyt keskinopeutta vai mitä siitä tulee...
- Minä päädyin tulokseen
a/v b * sqrt(1/u^2 - 1/v^2),
jos a > ub/sqrt(v^2-u^2)
muutoin suoraan jokeen eli
1/u * sqrt (a^2 b^2)
Laskut: https://www.desmos.com/calculator/fmh5ckafva (sievennykset tein paperilla, mutta tuo Desmos on erittäin kätevä sen tutkimiseksi missä tuli laskuvirheitä matkan varrella).
Mietin jo eilen vielä sellaista yleistystä tähän, että Janekin voi liikkua ja tarkoitus on kohdata mahdollisimman pian. Janen vastaavat nopeutensa v_2 ja u_2. Näyttäisi siltä, että jommankumman kannattaa aina hypätä suoraan veteen ja reitti on siis periaatteessa sama kuin jos toinen vain liikkuisi, mutta kohtaaminen tapahtuu joessa. Tällaisia laskelmia tein: https://www.desmos.com/calculator/0anc0h9sof
Vähän selitystä: a ja b vakiot ovat nopeuksien käänteislukuja (nehän ne kaavaan kertoimiksi tulevat), x1, x2 ovat x-koordinaatit, joissa siirtyvät uimaan ja (x3,y1) on kohtauspiste. Vasen alanurkka oletetaan origoksi. Funktiot g1 ja g2 ovat ajat, jotka heiltä kuluu kohtaamiseen (eli ratkaisussa täytyy olla g1=g2). Näillä oletuksilla reitti siis voisi koostua jopa neljästä erisuuntaisesta janasta, mutta tosiaan näyttäisi käyvän niin, että se koostuu vain kahdesta. Tulisiko tuo jotenkin niin, että oletetaan vain yksi liikkuja, joka liikkuu kahden keskinopeuksilla? - Melko varmasti Eero Vaalanne.
- Tuolla tavoinhan aloituksen tehtäväkin "korjautuisi": 8:n pituista reunaa ei pääse nopeasti vaan siellä on myös ruuhkaa.
- Joo, kakkonen unohtu viestistä sqrt:n edestä. Oli laskuissa! :D
- Minkä vuoden tehtävä tuo on?
Kyllä, minäkin saan että reunoja pitkin meno on minimi. Tein näin:
f(x,y) = x y sqrt( (12-x)^2 (8-y)^2 )
Jotta molemmat osittaisderivaatat nollia, on oltava
12-x = 8-y ja edelleen 2(12-x)^2 = 4(12-x)^2
eli
x = 12 ja y = 8.
Joten alueen A = (0,12)×(0,8) sisällä ei lokaaleja minimikohtia ole. Minimin täytyy siis löytyä A:n reunoilta. Ne kaikki tarkastamalla, huomataan, että (12, 8) todella on f:n minimi.
Tein vielä tällaisen Desmokseen: https://www.desmos.com/calculator/lmb1qjrwuf ja tutkin vähän sitä miten nopeus tanssilattialla vaikuttaa siihen milloin muutos "kannattaa oikaista" tapahtuu. Näyttäisi olevan arvolla 1/sqrt(2). Tämähän käy järkeen, koska hyvä oikaisuhan tulee aina olemaan neliön diagonaali (??) ja sen pituus on sqrt(2)*sivu, joten kun nämä ovat samat,... hetkonen, sehän pitäisi olla 2*sivu = c*diag, noh kuitenkin.
Mutta miten ihmeessä tuo mallivastauksen 7,4 m on saatu? Tuleeko se jotenkin (väärällä oletuksella?!?) yhden muuttujan funktiosta, jos useamman muuttujan funktiot ei kuuluu lukion oppimäärään? - Yhtäsuuruus tulee siitä, että raja-arvon on oltava sama lähestyttiinpä vasemmalta tai oikealta. (Kun siis oletetaan että funktio on derivoituva eli erotusosamäärän raja-arvo on olemassa.)
- Tänne oli tullut viesti, mutta AI ilmeisesti poistanut (ihan asiallinen mitä alkua inboxistani näin). Kannattaa laittaa koodit linkin taakse johonkin ulkoiseen juttuun, jos se niiden takia poistelee viestejä.
Tein nyt Python-version, jossa käytin kirjastoa https://pypi.org/project/suffix-trees/ . (Käytin aluksi https://pypi.org/project/suffix-tree/ :aa, mutta se on erittäin paljon hitaampi.) Ensin muodostetaan suffiksipuu ja siitä käydään sitten kaikki sisäsolmut läpi, joista jokaiselle käydään sen solmun lehtisolmu parit, joiden syvyyksien erotus on solmun syvyys. Koittelin tuohon tehdä erinäisiä parannuksia eritoteen 9 ja 10 tapauksissa taisi auttaa sellainen, että ensin tallennetaan dictiin kaikki lehtisolmut syvyyden mukaan ja sieltä voidaan sitten poimia tarvitun syvyinen pari kun yksi lehti on kiinnitetty, tarkastetaan vain onko se oikeassa haarassa. Joissain tapauksissa tuo taitaa vaan tulla liian hitaaksi (jos tutkitun syvyisiä lehtiä on paljon).
Tässä koodini https://repl.it/@minkkilaukku2/Mannynpera2#main.py . Ei toimi Python 3:lla, koska siellä _SNodella ei ole __dict__ -attributtia mutta Python 2:ssa on, mitä hittoa?!?? Ahaa: https://stackoverflow.com/questions/41658015/object-has-no-attribute-dict-in-python3
Loppujen lopuksi sain tavalla tai toisella tuolla koodilla kaikki tapaukset järjellisessä ajassa ratkaistua.
Noh,
Putkapostin kommenteissa ollut seuraava idea näyttää toimivan paljon nopeammin:
https://repl.it/@minkkilaukku2/Mannynpera1#main.py - Ei siinä tehdä mitään kiellettyä. Jäännöstermi (se mitä videossa kutsutaan JUNK) menee nollaan, kun x -> a. Mutta jotta saatu sarja esittäisi f(x):ää, niin täytyy käydä niin, että se menee x:ssä nollaan, kun n menee äärettömään. Nämä ovat kaksi eri asiaa.
Funktiolle f(x)=exp(-1/x) origossa kehitetyn sarjan jäännöstermi on kaikilla n:n arvoilla f(x), koska kaikki derivaatat origossa ovat nollia. Jäännös ei siis mene nollaan, kun n menee äärettömään, jos x>0, koska f(x) != 0 tuolloin.
Äärettömästi derivoituvuus ei siis riitä siihen, että reaalifunktio voitaisiin lokaalisti kirjoittaa potenssisarjana. Tätä varten on keksitty eri termi: Analyyttinen funktio: https://fi.wikipedia.org/wiki/Analyyttinen_funktio
PS. en välittäisi tuosta Wikipedian lauseesta "Toinen tapa määritellä analyyttinen funktio on todeta, että funktio on analyyttinen, jos se on differentioituva jokaisessa joukon {\displaystyle G}G pisteessä." Potenssisarjaesityksen lokaali olemassa olo on se mitä analyyttisyydellä tarkoitetaan. - Symmetrisyys tulee juuri siitä miten potenssisarja suppenee: sillä on suppenemissäde, jonka ulkopuolella se ei suppene. Nyt jos f yhtyy Taylorin sarjaansa P jollain välillä, niin f:n pitää olla äärettömästi derivoituva, koska potenssisarja on sitä. Mutta jos f:llä on "epäsiisteyspiste" a r:ssä, niin tästä eteenpäinhän ei voi enää käydä niin, että f yhtyisi sarjaan ja sarja suppenisi, siis P:n täytyy hajaantua tai ei enää esittää f:ää kun tähän pisteeseen "törmätään".
Tuohan siinä voi tosiaan myös tapahtua, että P "lopettaa esittämästä f:ää", jos f ei ole analyyttinen. Laitetaan esim. paloittain määriteltynä "eri funktiot", tämän voi myös silottaa äärettömästi derivoituvaksi.
Mutta analyyttiselle funktiolle, jolla on epäsiisteyspiste, täytyy tapahtua P:n hajaantuminen. Ja symmetrisesti se siis hajaantuu myös toisella puolella.
Katso Calculus Fennicuksen sivun 456 ja 457 esimerkit 5 ja 6. Tuo esimerkki 6 onkin mielenkiintoinen. Funktio 1/(1 4x^2) on kaikilla reaaliluvuilla siisti, mutta silti sen origossa kehitetty Taylorin sarja suppenee vain välillä (-1/2, 1/2). Mitä pahaa on puolikkaan päässä origosta!?!?!? :D Noh, jätetään tämä hautumaan... - Sori, nyt ajattelin väärin. Voi Taylorin sarjan suppenemissäde olla suurempikin kuin r tuossa tapauksessa, mutta silloin sarja ei voi olla f:n kanssa yhtäpitävä. Ota se standardiesimerkki f(x) = e^(-1/x), kun x>0 ja f(x) = 0 kun x<=0. Sen origossa otettu Taylorin sarjahan on identtisesti nolla, koska kaikki derivaatat nollia joten suppenee tietysti kaikilla x, mutta tässä tapauksessa sarja ei suppenekaan f:ään.
Jos sarja olisi f:än kanssa yhtäpitävä yli r:n suuruisella välillä, niin silloin f:n pitäisi olla analyyttinen (eli erityisesti jatkuvasti derivoituva) myös pisteessä a r. - Tässä olis miten minä sen laskin:
https://membolicsythod.home.blog/2020/05/23/etaisyyksien-tulo-on-1/
Useammalle pisteelle vastaavasti kohdat, joissa sivuaa saadaan Chebyshevin polynomien avulla:
https://math.stackexchange.com/questions/3689253/n-insects-on-z-1-occupy-a-point-if-the-product-of-their-distances-to-it
Kun n kasvaa, ympyrästä voidaan syödä mielivaltasen suuri osa ja hauskasti tasa-arvo käyrä |f|=1 muodostaa sisälle "pienemmän ympyrän". Ympyrän kehä ei voi kuitenkaan kokonaan jäädä |f|<1:n sisään, sillä ympyrällä on aina piste, jossa |f|>1. Jos tämä jäi jotakuta vaivaamaan, niin sehän tulee maksimi moduluksen periaatteesta: Funktio f on analyyttinen (sehän on polynomi) ja origossa |f| = 1. Koska f ei ole vakio, niin ympyrän reunalla täytyy olla piste jossa |f|>1.
Maksimi moduluksen periaate: https://en.wikipedia.org/wiki/Maximum_modulus_principle - Kyllä, tämä pitää paikkansa. Se johtuu siitä, että Taylorin sarjan suppenemissäde on tuolloin korkeintaan r. Se ei voi olla yli r, sillä (esim.) a r on "ongelmapiste" oletuksen mukaan. Siis: Taylorin sarja ei voi olla f(x):n kanssa yhtäpitävä välin ulkopuolella, koska se ei edes suppene [a-r, a r]:n ulkopuolella. Välin päätepisteistä ei tosin yleisesti voida sanoa mitään.
- https://doc.sagemath.org/html/en/reference/combinat/sage/combinat/words/suffix_trees.html
Tuossa algoritmissä, jota Sagekin käyttää on muuten takana suomalaisen Esko Ukkosen algoritmi:
https://en.wikipedia.org/wiki/Ukkonen's_algorithm
Tämä algoritmi muodostaa merkkijonon suffiksi-puun (kaikki merkkijonon päätteet koodaava tietorakenne) lineaarisessa ajassa (kun käytettävä merkistö on kiinnitetyn kokoinen).
Tai siis Ukkosen algorimia käyttää normaalille suffiksi puulle, "dekoroidulle" näytti olevan tästä: https://www.sciencedirect.com/science/article/pii/S0022000004000364?via=ihub , joka siis onkin ratkaisu juuri Putkapostin ongelmaan. Sen pitäisi olla lineaariaikainen mutta kertoimet ovat varmaan aika isoja (PS. Crochemoren algoritmi https://www.sciencedirect.com/science/article/abs/pii/0020019081900247 on saman ongelman ratkaisu ja sille taisi tilanvienti olla ainakin jotain 11*n), ainakin itselläni vei aika pitkään tuo ratkaisu. Mullahan ei omalla koneellani tuota Sagea ole vaan netissä suoritan: https://sagecell.sagemath.org/ . Olikin muuten aika homma saada nuo isot tapaukset laitettua :D Jotain "Message too long, message too long" se herjas, mutta näytti ne oikein kuitenkin menevän. Lopulta laitoin kympin (ajan takia) erikseen (piti muuten vielä maksimi rekursio-iteraatio limittiä nostaa, jo 9-tapauksessa) ja kyllä se lopulta oikeat vastaukset tuotti.
Tässä videossa näytetään toinen tapa muodostaa suffiksi-puu ja puhutaan sovelluksista, jotka ovat lähellä tätä ongelmaa (esim. pisin toistuva jono (mutta ei tarvitse olla vierekkäin)):
https://www.youtube.com/watch?v=NinWEPPrkDQ - Sulla kun on tuo testi
s[pos-i] == s[pos i]
niin sehän testaa että pos:ista eteen- ja taaksepäin on samoja merkkejä eli noin löytyisi (parittoman pituisia) palindromi-pötköjä.
Pitää testata, että vierkkäiset merkkijonot i:n matkalta ovat samat eli
s[pos-i:pos] == s[pos:pos i]
Sittenhän tulee ongelmaksi se, että luuppia ei voi katkaista, jos eroava indeksi löytyy, koska se ei tarkoita, että suuremmalla i:n arvolla ei voisi löytyä toistojaksoa.
Nuo korjaukset kun tekee (ja tallenna bestPos, se taisi sinulta unohtua, eikä mjonoa tarvitse mihinkään) ja output olisi näin
print(str(tapaus) " " str(maximi) " " str(bestPos-maximi 1))
Mutta nyt siis ongelma on että tuo koodi on melkolailla hidas. Itse huijasin ja käytin seuraava Sage-koodia:
from sage.combinat.words.suffix_trees import DecoratedSuffixTree
s = 'hfhfggccaggccagccafff'
start, run2 = max((x[1], x) for x in DecoratedSuffixTree(Word(s)).square_vocabulary())[1]
print ("{} {}".format(run2/2, start 1)) - Laita halutut kuvat niiden :hover::aftereiden background-imageiksi:
https://jsfiddle.net/ypk9xbcn/2/
Se ei siis "vaikuta" alkuperäiseen kuvaan mitenkään vaan päällä näytetään uusi.