Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#26 11. 06. 2016 14:14 — Editoval mák (11. 06. 2016 14:38)

mák
Místo: Vesmír, Galaxie MD
Příspěvky: 917
Reputace:   63 
 

Re: Modulo

Zdravím,

na Ulož to jsem nahrál program.

Kombinací kláves control+R se spustí celý program.


LibreOffice Verze: 7.6.6.3, Maxima 5.47.0 (SBCL)

Offline

 

#27 12. 06. 2016 12:04 — Editoval ket (12. 06. 2016 12:13)

ket
Příspěvky: 46
Reputace:   
 

Re: Modulo

Dekuju,uz jsem pochopila jak to pocita. Ale mam porad problem.v tomto:  vse je ok dokud nezmenim hodnotu puvodni x: Seznam([1,2,3,4,5,6)],6;  jakmile pozmenim cisla na jakoukoli hodnotu napr. 10,20,30,40,50,60  ci jakoukoli jinou kombinaci uz mi nechce spocitat. Vyskoci mi vysledek x [ ]  Pouzila jsem primo Vas program z uloz to. Staci pozmenit jen jedno cislo a uz nepocita. :-( uz jsem zoufala.

Offline

 

#28 12. 06. 2016 12:49

mák
Místo: Vesmír, Galaxie MD
Příspěvky: 917
Reputace:   63 
 

Re: Modulo

Zdravím,
u počítače jsem málokdy, takže nemůžu odpovědět okamžitě.

Mě to spočítá:
Seznam([10,20,30,40,50,60],6);
Výsledek je:
[102030405060,102030406050,102030504060,102030506040, .... atd

Nepíšete místo nuly velké O?


LibreOffice Verze: 7.6.6.3, Maxima 5.47.0 (SBCL)

Offline

 

#29 12. 06. 2016 13:24

ket
Příspěvky: 46
Reputace:   
 

Re: Modulo

↑ mák:

Urcite ne.  Jednou to spocita....po druhe jakmile to zmenim tak uz ne. Vypocita to jednoz z deseti pripadu.

Offline

 

#30 12. 06. 2016 13:28

ket
Příspěvky: 46
Reputace:   
 

Re: Modulo

↑ mák:
A v poradku,ja si klidne pockam jakmile budete mit cas.

Offline

 

#31 12. 06. 2016 13:34

mák
Místo: Vesmír, Galaxie MD
Příspěvky: 917
Reputace:   63 
 

Re: Modulo

Pošlete soubor na uložto.


LibreOffice Verze: 7.6.6.3, Maxima 5.47.0 (SBCL)

Offline

 

#32 12. 06. 2016 13:48

mák
Místo: Vesmír, Galaxie MD
Příspěvky: 917
Reputace:   63 
 

Re: Modulo

Ještě mě napadlo,
v nastavení (Konfigurace programu) wxMaximy si zkontrolujte, zda máte povolené zobrazovat dlouhé výrazy.


LibreOffice Verze: 7.6.6.3, Maxima 5.47.0 (SBCL)

Offline

 

#33 12. 06. 2016 14:00

ket
Příspěvky: 46
Reputace:   
 

Re: Modulo

Ano to je v poradku.

Offline

 

#34 12. 06. 2016 14:04

ket
Příspěvky: 46
Reputace:   
 

Re: Modulo

https://uloz.to/xPR4yrAr/seznam-wxmx

jakmile to zmenim treba take tak uz to dela neplechu. Jak rikam, jednou to spocita a pak se zasekne a nepohnu s tim.

Offline

 

#35 12. 06. 2016 16:21

mák
Místo: Vesmír, Galaxie MD
Příspěvky: 917
Reputace:   63 
 

Re: Modulo

Dobře, nefunguje to proto, že jsou tam stejná čísla.
Takže to zjednodušíme bez kontroly.

Příkaz na vytvoření všech kombinací bez opakování je:

Code:

permut([65,65,65,65,82,82]);

Výsledek je:

Code:

[[65,65,65,65,82,82],[65,65,65,82,65,82],[65,65,82,65,65,82],[65,82,65,
65,65,82],[82,65,65,65,65,82],[65,65,65,82,82,65],[65,65,82,65,82,65],[65,82,65
,65,82,65],[82,65,65,65,82,65],[65,65,82,82,65,65],[65,82,65,82,65,65],[82,65,
65,82,65,65],[65,82,82,65,65,65],[82,65,82,65,65,65],[82,82,65,65,65,65]]

No a spojení do jednoho čísla provede tato funkce (změněno! - používá pouze jeden parametr)):

Code:

Seznam(List):=maplist(lambda([w],eval_string(lreduce('concat,w))), permut(List))$

X: Seznam([65,65,65,65,82,82]);

Výsledek je:

Code:

 [656565658282,656565826582,656582656582,658265656582,826565656582,656565828265,
656582658265,658265658265,826565658265,656582826565,658265826565,826565826565,
658282656565,826582656565,828265656565]

LibreOffice Verze: 7.6.6.3, Maxima 5.47.0 (SBCL)

Offline

 

#36 12. 06. 2016 16:39 — Editoval ket (12. 06. 2016 17:06)

ket
Příspěvky: 46
Reputace:   
 

Re: Modulo

↑ mák:
Uz jsem s toho tulpachova ....
A jak tedy vypada cele zadani i s mod a mocninou? Uz se v tom asi placam. Omlouvam se.
Muzu jeste poprosit i s opakovanim?

Offline

 

#37 12. 06. 2016 17:13

mák
Místo: Vesmír, Galaxie MD
Příspěvky: 917
Reputace:   63 
 

Re: Modulo

Takto s použitím nové funkce Seznam (ta potřebuje pouze jeden parametr a to List obsahující čísla které má k dispozici):

Code:

Seznam(List):=maplist(lambda([w],eval_string(lreduce('concat,w))), permut(List))$

X: maplist(lambda([z],[z, mod(z, 965132)]), Seznam([65,65,65,65,82,82])^32);

A takhle budou vidět pro přehlednost 3 čísla na každém řádku (druhý řádek programu):
1. Vygenerované číslo
2. Vygenerované číslo^32
3. modulo(Vygenerované číslo^32, 965132

(poslední příkaz transpose zamění řádky za sloupce [maticový příkaz], takže to graficky zvýrazní)

Code:

Seznam(List):=maplist(lambda([w],eval_string(lreduce('concat,w))), permut(List))$

X: maplist(lambda([z],[z, z^32, mod(z^32, 965132)]), Seznam([65,65,65,65,82,82]))$

transpose(X);

LibreOffice Verze: 7.6.6.3, Maxima 5.47.0 (SBCL)

Offline

 

#38 12. 06. 2016 17:16 — Editoval mák (12. 06. 2016 17:17)

mák
Místo: Vesmír, Galaxie MD
Příspěvky: 917
Reputace:   63 
 

Re: Modulo

Dá se to zobrazit i přímo jako matice:

Code:

Seznam(List):=maplist(lambda([w],eval_string(lreduce('concat,w))), permut(List))$

X: maplist(lambda([z],[z, z^32, mod(z^32, 965132)]), Seznam([65,65,65,65,82,82]))$

apply('matrix, X);

V prvním sloupečku je vygenerované číslo, v druhém jeho 32 mocnina a ve třetím je modulo 965132.


LibreOffice Verze: 7.6.6.3, Maxima 5.47.0 (SBCL)

Offline

 

#39 12. 06. 2016 17:57

ket
Příspěvky: 46
Reputace:   
 

Re: Modulo

Paaaaani.  :-) to je uplne luxusni. Funguje to uz bezvadne. Jak prvni tak druhe. Strasne moc dekuju! Chvilicku budu pocitat....

Offline

 

#40 12. 06. 2016 18:11

ket
Příspěvky: 46
Reputace:   
 

Re: Modulo

Ted me jeste napadlo.....kdyz bych chtela by mi mi to vypsalo kombinace  ze zadanych cisel  od prvniho cisla... 65^...6582...658282....65828265. ...atd. Az po tu hodnotu zadanych cisel tedy tady 6.  Je to teda uz hodne kombinaci . :-). Doufam ze jsem to popsala srozumitelne.

Offline

 

#41 12. 06. 2016 19:27

mák
Místo: Vesmír, Galaxie MD
Příspěvky: 917
Reputace:   63 
 

Re: Modulo

Zdravím,
pokud jsem to dobře pochopil, tak by to mělo vypadat asi takto - je to složitější, protože jsem pole dat musel adresovat nepřímo přes index:

Code:

Seznam(List):=block([Pocet, Index, S:List, Q],
    Pocet: length(List),
    if is(Pocet>1) then (
        Index: makelist(i,i,1,Pocet),
        for i:2 thru Pocet do (
            N: full_listify(powerset(setify(Index),i)), 
            Q: maplist(lambda([z],  
                maplist(lambda([w],eval_string(lreduce('concat,
                    maplist(lambda([y],List[y]),w)))), permut(z))), N), 
            S: cons(S,Q)
        )
    ), unique(sort(flatten(S)))
)$

X: maplist(lambda([z],[z, z^32, mod(z^32, 965132)]), Seznam([65,65,65,65,82,82]))$

apply('matrix, X);

LibreOffice Verze: 7.6.6.3, Maxima 5.47.0 (SBCL)

Offline

 

#42 12. 06. 2016 20:06

ket
Příspěvky: 46
Reputace:   
 

Re: Modulo

No ja koukam jak suva z nudly. :-))   Uzasny. ...smekam.
Takle pres maximu snad jde spocitat uplne vsechno...:-)

Offline

 

#43 13. 06. 2016 08:45 — Editoval ket (13. 06. 2016 09:44)

ket
Příspěvky: 46
Reputace:   
 

Re: Modulo

Zdravim jeste jednou, tentokrat mam problem s necim jinym. Kdyz zadam cokoli do Maxima tak po chvilicce vyskoci "program lisp.exe prestal pracovat. " hlaseni ukazat nejde,vypne se.  Pripojeni k internetu je v poradku. Jiz jsem zkontrolovala co se dalo.....ale asi neco prehlizim. Prosim pomoc.

Uplna odinstalace a nova instalace pomohla. Ale mam obavy ze to udela zas.

Offline

 

#44 13. 06. 2016 10:03

mák
Místo: Vesmír, Galaxie MD
Příspěvky: 917
Reputace:   63 
 

Re: Modulo

Zdravím,
já používám Ubuntu (Linux) a s tímto jsem se nesetkal. Předpokládám že máte Windows. Díval jsem se do repozitáře a je tam nová verze pro Windows (maxima-sbcl-5.38.1-win64.exe - doufám že řeší tento problém), zkuste program odinstalovat a nainstalovat tuto novou verzi.
Možná po odinstalování staré verze bude dobré Windows nějak vyčistit, aby nezůstalo něco v registrech, ale v tom se opravdu nevyznám.

Pokud by ani to nepomohlo, pak bych zkusil nějakou starší verzi. (5.37.3-Windows)
Je tam na výběr ze tří prostředí: sbcl, gcl a clisp. Určitě by mělo aspoň jedno jít.


LibreOffice Verze: 7.6.6.3, Maxima 5.47.0 (SBCL)

Offline

 

#45 13. 06. 2016 17:19 — Editoval ket (13. 06. 2016 17:37)

ket
Příspěvky: 46
Reputace:   
 

Re: Modulo

Tak jsem udelala vsechno mozmy,ale stejne to pada.

Tak se mi povedlo alespon to ze se maxima ted alespon nevypne, ale naskoci mi

Message from maxima's stderr stream:
*** - Program stack overflow. RESET

Ale nechapu co mam presne resetovat??
No zjistila jsem ze to dela jen dyz zadam vic cisel do kombinace, tedy predpokladam ze jde o preteceni zasobniku. Ted jen nevim jestli staci neco nastavit maxime nebo je potreba pozmenit program.

Offline

 

#46 13. 06. 2016 19:49 — Editoval mák (13. 06. 2016 19:56)

mák
Místo: Vesmír, Galaxie MD
Příspěvky: 917
Reputace:   63 
 

Re: Modulo

Zdravím,
koukám asi nejsem moc náročný, ten program využíváte do maxima. Asi si brzo budete muset koupit stroj s větší pamětí a rychlejším procesorem. :-)

Funkce permut využívá rekurzi a při vyšších požadavcích přeteče zásobník (je moc náročná na paměť). Dá se nahradit funkcí permutations, která používá jiný způsob výpočtu, ale musíte počítat s tím, že s vyšším počtem hodnot nestoupá počet možností lineárně, ale mnohonásobně rychleji, takže to bude podstatně časově náročnější.

Upravený program (záměna funkce permut za permutations):

Code:

Seznam(List):=block([Pocet, Index, S:List, Q, N],
    Pocet: length(List),
    if is(Pocet>1) then (
        Index: makelist(i,i,1,Pocet),
        for i:2 thru Pocet do (
            N: full_listify(powerset(setify(Index),i)), 
            Q: maplist(lambda([z],  
                maplist(lambda([w],eval_string(lreduce('concat,
                    maplist(lambda([y],List[y]),w)))), full_listify(permutations(z)))), N), 
            S: cons(S,Q)
        )
    ), unique(sort(flatten(S)))
)$

Zbytek je stejný.


LibreOffice Verze: 7.6.6.3, Maxima 5.47.0 (SBCL)

Offline

 

#47 13. 06. 2016 20:23 — Editoval ket (13. 06. 2016 20:23)

ket
Příspěvky: 46
Reputace:   
 

Re: Modulo

↑ mák:

Dekuji. Ja zatim zjistovala co presne je lisp.exe a na co se pouziva. No a  Zmenila  jsem v programu lisp.exe prostredi z clisp na sbcl,dle vasi rady( treti v nejnovejsi maxime nevidim) sice udela pred vypoctem neco...:-) ale jiz vysledek dala. A kupodivu i celkem rychle.Na kombinace cislel treba z 15 pozic uz bych potrebovala asi opravdu poradku hracku.  :-).
Zatim ted tedy funguje.....moc dekuji. Pokud pomuze jak doufam mate u me flasku neceho vytecneho. :-)

Offline

 

#48 14. 06. 2016 14:07

ket
Příspěvky: 46
Reputace:   
 

Re: Modulo

mák napsal(a):

Dá se to zobrazit i přímo jako matice:

Code:

Seznam(List):=maplist(lambda([w],eval_string(lreduce('concat,w))), permut(List))$

X: maplist(lambda([z],[z, z^32, mod(z^32, 965132)]), Seznam([65,65,65,65,82,82]))$

apply('matrix, X);

V prvním sloupečku je vygenerované číslo, v druhém jeho 32 mocnina a ve třetím je modulo 965132.

Mohu se prosim jeste zeptat? Lze u tohoto poslkladat vyskledky od nejmensiho? Treba vysledky modula.

Offline

 

#49 14. 06. 2016 17:00

mák
Místo: Vesmír, Galaxie MD
Příspěvky: 917
Reputace:   63 
 

Re: Modulo

Seřazeno podle třetího sloupce od nejmenšího po největší (vložený příkaz sort):

Code:

Seznam(List):=map(lambda([w],eval_string(lreduce('concat,w))), permutations(List))$

X: maplist(lambda([z],[z, z^32, mod(z^32, 965132)]), Seznam([65,65,65,65,82,82]))$

S: sort (X, lambda ([a, b], a[3] < b[3]))$

apply('matrix, S);

LibreOffice Verze: 7.6.6.3, Maxima 5.47.0 (SBCL)

Offline

 

#50 14. 06. 2016 17:22

ket
Příspěvky: 46
Reputace:   
 

Re: Modulo

↑ mák:

Dekuju moc!  Trosku jsem si uz i s tim pohrala.  Hledala jsem nejaky seznam prikazu ale nenasla jsem. :-( Jeste par dni a budu profik jako vy. :-))) no to asi ne. :-)

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson