Sadržaj

toki pona

od thyrolf, 4. prosinca 2017.

Poruke: 58

Jezik: Esperanto

nornen (Prikaz profila) 14. siječnja 2018. 18:34:05

Altebrilas:Do substrku la "pli"-ojn kaj provu klarigi kial la "malpli"-oj estas en tiu loko
a) Pli ol kiuj? "Pli" sen komparaĵo estas sensenca.
b) Ĉiu lando estas en sia loko, ĉar mi konas tie malpli homojn ol en ĉiu lando pli supre en la listo, kaj mi konas tie pli homojn ol en ĉiu lando pli sube en la listo.
Mi ne vidas kien iras tio...

Altebrilas:Mi parolis pri komputila algoritmo, kiu simulas la funkciadon de homa cerbo, do kiu povas fari "homajn" erarojn. La celo estas kompreni kiel ĝi funkcias. Mi eltrovis algoritmon, kiu efektive estas recursiva. Ĉu vi jam difinis iun?
Mi ja opinias ke nia cerbo pli malpli uzas tiajn parsilojn. Bonvole difinu "homa eraro".
Ĉiu rekursiva algoritmo povas esti donita kiel iterativa algoritmo, kaj ĉiu iterativa algoritmo povas esti donita kiel rekursiva algoritmo. Se mia memoro ne trompas min, Church kaj Turing pruvis tion. Mi ne komprenas kion vi celas. Bonvole publikigu vian rekursivan algoritmon kiu pravigas homajn erarojn.

Altebrilas (Prikaz profila) 15. siječnja 2018. 00:52:01

Vi diris
Pli malpli laŭ la nombroj da personoj, kiujn mi konas el ĉiu lando.
El tio mi komprenis, ke por iuj landoj, tiu kriterio gravas, kaj por aliaj ĝi estas pli malgrava. Do mi demandis kiujn aliajn kriteriojn vi uzis.

Mi ne antaŭvidis, ke vi konas homojn en ĉiuj landoj de via kontinento, sed pri esperantisto, tio estas normala. Sed se mi farus al vi la sama demando pri la mondo, exemple, vi ne povas uzi tiun kriterion por ĉiuj landojn. Se vi havas mapon anstataŭ statistikojn, vi listigos la landojn kiel oni priskribas pejzaĝon. La graveco (surfaco aŭ loĝantaro, ktp.) ne estas la unua kriterio, ĉar tiel vi ne scius kiel ordigi la mezajn landojn, kiuj estas proksimume egalaj, kaj riskas forgesi iujn. Do vi devas adopti alian strategion.

Mia algoritmo estas jena:
valoro de listo de nombroj egalas,
se K estas la plej granda nombro de la listo,
(valoro de la sublisto maldekstre de K) * K + (valoro de la sublisto dekstre de K)
Kiam mi eltrovis ĝin, ĝi ŝajnis al mi belege simpla, kaj ĝi prezentas la saman rekursivecon kiu ekzistas en la naturo, pri kreskaĵoj ekzemple. Do mi faris la hipotezon, ke nia cerbo funkcias sammaniere.

nornen (Prikaz profila) 15. siječnja 2018. 16:22:14

Altebrilas:Se vi havas mapon anstataŭ statistikojn, vi listigos la landojn kiel oni priskribas pejzaĝon. La graveco (surfaco aŭ loĝantaro, ktp.) ne estas la unua kriterio, ĉar tiel vi ne scius kiel ordigi la mezajn landojn, kiuj estas proksimume egalaj, kaj riskas forgesi iujn. Do vi devas adopti alian strategion.
Sendube, eble belsonoreco de la landnomo...
Mia algoritmo estas jena:
valoro de listo de nombroj egalas,
se K estas la plej granda nombro de la listo,
(valoro de la sublisto maldekstre de K) * K + (valoro de la sublisto dekstre de K)
Bela algoritmo kaj ŝajnas funkcii bone por ekzemple Esperanto kaj la hispana. Tamen ĝi havas unu problemon. Vi bezonas koni la tutan liston antaŭ ol komenci parsi. Ekzemple en python, ĝi funkcius bone kun listo, tamen ĝi ne funkcius kun generanto (? generator). Mi dubas ke ni homoj bezonas atendi ĝis la fino de eldiro por povi komenci ĝin ekkompreni. Komunikado estas seria: aperas la simboloj unu post la alia.
Por fari komputila komparo: Se ekzemple via retnavigilo funkcius per algoritmo kiel la proponita de vi por parsi la HTML, kiun ricevas, ĝi ekvidigus la paĝon post kiam ĝi ricevis la tutan HTML. Se pro ia okazaĵo la HTML estus ricevita nur parte, ĝi vidigus nenion. Realaj retnavigiloj uzas parsilojn seriajn, kaj iom post iom ekvidigas la paĝon sen bezono atendi ricevi la tutan HTML.
Mi forte dubas, ke nia cerbo bezonas tutan eldiron antaŭ ol komenci ĝin interpreti.
Tamen, ja estas bela kaj simpla algoritmoj. Laŭ mi simpleco preskaŭ ĉiam naskas belecon.

Ĉu vi havas simile belan algoritmon por parsi nombrojn germanajn?
(-zig = -ßig = dekoble; kiel -ante en quarante, cinquante, soixante)

463 = vierhundertdreiundsechzig = kvar cent tri kaj ses dekoble
1979 = neunzehnhundertneunundsiebzig = naŭ dek cent naŭ kaj sep dekoble
23032 = dreiundzwanzigtausendzweiunddreißig = tri kaj du dekoble mil du kaj tri dekoble.

Ĉu nombrojn kekĉiajn?
(Nombrosistemo ne estas deka, tamen dudeka. Tial la nombroj 1 ĝis 19 estas primitivaj kaj atomaj)

55 = o'laju roxk'aal = 15 de 3 20 = 15 sur la vojo al 3 * 20
162 = wib' xb'elek'aal = 2 de 9 20 = 2 sur la vojo al 9 * 20
144 = kaahib' xwajxaqk'aal = 4 de 8 20 = 4 sur la vojo al 8 * 20

Altebrilas (Prikaz profila) 15. siječnja 2018. 18:09:16

1. Imagu la saman algoritmon, anstataŭante "*" per "-"

Kiom faras (mil, cent, mil, dek, kvindek, unu, dek)?

2. Por la germana, mi supozas ke "und" influas la ordon.

3. Por la kekĉia, mi pripensos... Ĉu ili eldiras pli grandajn nombrojn?

nornen (Prikaz profila) 15. siječnja 2018. 19:05:03

Kio estas la haltkondiĉo por via rekursiva algoritmo?

Kion returnigas via algoritmo kiam ricevas malplena listo kiel ekzemple ĉi tie?

f (dek, ok) = f () * 10 + f (ok) = ...

Se ĝi returnigas 0, do f (dek, ok) = f () * 10 + f (ok) = 0 * 10 + f () * 8 + f() = 0 <> 18

Se ĝi returnigas 1, do f (dek, ok) = f () * 10 + f (ok) = 1 * 10 + f () * 8 + f () = 1 * 10 + 1 * 8 + 1 = 19 <> 18

Se ĝi returnigas 0, do f (ok, dek) = f (ok) * 10 + f () = (f () * 8 + f () ) * 10 + f () = (0 * 8 + 0) * 10 + 0 = 0 <> 80

Se ĝi returnigas 1, do f (ok, dek) = f (ok) * 10 + f () = (f () * 8 + f() ) * 10 + f () = (1 * 8 + 1) * 10 + 1 = 91 <> 80

Eble mi ne komprenis bone vian difinon. Ĉu vi povas skribi vian algoritmon en iu komputila lingvo aŭ pseŭdokodo kaj afiŝi ĝin ĉi tie? Mi petas.

Pri la germana: oni povas forlasi la "und" kaj la nombro ankoraŭ estus unusence difinita.

Pri la kekĉia: Ja, ili povas eldiri pli grandajn nombrojn, nur ilia baznombroj estas potencoj de 20, kaj ne de 10.
20^0 = 1 = jun
20^1 = 20 = may
20^2 = 400 = o'q'ob'
20^3 = 8000 = chuy
ktp

2018 = waqxaqlaju xwaqo'q'ob' = 18 sur la vojo al 6 * 400.

Iliaj antikvaj kalendaroj kovras milionojn da tagoj.

Altebrilas (Prikaz profila) 16. siječnja 2018. 00:30:57

valoro(x)=x (unusola nombro)

aŭ se vi preferas: valoro() = neutralelemento
kun:
neutralelemento +x =x
neutralelemento *x =x

neutralelemento dependas de la operacio, kiun oni faras

Praktike, la rekursiva funkcio havas du argumentojn, la dua estas 1 aŭ 0:
valoro (listo_de_nombroj, valoro_de_malplena listo)=
se listo_de_nombroj estas malplena, return valoro_de_malplena listo
se K estas la plej granda nombro de la listo,
return valoro (sublisto maldekstre de K,1) * K + valoro ( sublisto dekstre de K,0)

La ĉefa alvoko uzas 0 kiel valoro_de_malplena listo


18 sur la vojo al 6 * 400.
6*400-18= 2382
6*400-18*20=2040

Kiel tio povas fari 2018?

nornen (Prikaz profila) 16. siječnja 2018. 00:59:06

Altebrilas:valoro(x)=x (unusola nombro)

aŭ se vi preferas: valoro() = neutralelemento
kun:
neutralelemento +x =x
neutralelemento *x =x

neutralelemento dependas de la operacio, kiun oni faras

Praktike, la rekursiva funkcio havas du argumentojn, la dua estas 1 aŭ 0:
valoro (listo_de_nombroj, valoro_de_malplena listo)=
se listo_de_nombroj estas malplena, return valoro_de_malplena listo
se K estas la plej granda nombro de la listo,
return valoro (sublisto maldekstre de K,1) * K + valoro ( sublisto dekstre de K,0)

La ĉefa alvoko uzas 0 kiel valoro_de_malplena listo


18 sur la vojo al 6 * 400.
6*400-18= 2382
6*400-18*20=2040

Kiel tio povas fari 2018?
Okej! Mi solvis ĝin iel simile:

f ( [] ) = 0
f (x) = max (f (sublisto maldekstre de K), 1) * K + f (sublist dektre de K), kie K estas maximuma elemento de x

Laŭ majaa interpreto, se vi estas sur la vojo al la n*20^x, vi ekmarŝis en (n-1)*20^x.
18 sur la vojo al 6*400 = vi ekmarŝis en 5*400, vi marŝis 18 paŝojn, kaj alvenis al 5*400+18 = 2018
Same:
162 = wib' xb'elek'aal = 2 de 9 20 = 2 sur la vojo al 9 * 20 = vi ekmarŝis en 8*20, vi marŝis 2 paŝojn, kaj alvenis al 8*20+2 = 162

Kiel diras oni sekve 65342?

Altebrilas (Prikaz profila) 16. siječnja 2018. 08:58:56

12 al 12 al 4 al 9 ? (mi formetis "sur la vojo", kiu redundas)

Mi reformuligas la duan problemon, aldonante la valoro de malplena listo:
1. Imagu la saman algoritmon, anstataŭante "*" per "-"

Kiom faras valoro(mil, cent, mil, dek, kvindek, unu, dek)?
kun valoro()=0

nornen (Prikaz profila) 16. siječnja 2018. 15:55:41

Altebrilas:12 al 12 al 4 al 9 ? (mi formetis "sur la vojo", kiu redundas)
Tute ĝuste. Kab'laju xkab'lajuk'aal xkaaho'q'ob' xb'eleechuy.

Altebrilas:Mi reformuligas la duan problemon, aldonante la valoro de malplena listo:
1. Imagu la saman algoritmon, anstataŭante "*" per "-"

Kiom faras valoro(mil, cent, mil, dek, kvindek, unu, dek)?
kun valoro()=0
Mi ne scias kie disigi la liston, ĉar la maximuma valoro mil aperas du fojojn.

Altebrilas (Prikaz profila) 16. siječnja 2018. 23:15:38

Kiam la sama nombro aperas plurfoje, la unua el ili estas konsiderata kiel la maksimuma.

Natrag na vrh