Matroids Matheplanet Forum Index
Moderiert von Spock mire2
Mathematische Software & Apps » Mathematica » Selektives listen mit table
Autor
Universität/Hochschule J Selektives listen mit table
OliverFuchs
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 25.03.2020
Mitteilungen: 131
Wohnort: Wien, Österreich
  Themenstart: 2021-08-22

\(\begingroup\)\(\newcommand{\al}{\alpha} \newcommand{\be}{\beta} \newcommand{\bs}{\backslash} \newcommand{\ga}{\gamma} \newcommand{\de}{\delta} \newcommand{\ep}{\varepsilon} \newcommand{\ze}{\zeta} \newcommand{\et}{\eta} \newcommand{\io}{\iota} \newcommand{\ka}{\kappa} \newcommand{\la}{\lambda} \newcommand{\rh}{\rho} \newcommand{\si}{\sigma} \newcommand{\ta}{\tau} \newcommand{\ph}{\varphi} \newcommand{\ch}{\chi} \newcommand{\ps}{\psi} \newcommand{\om}{\omega} \newcommand{\Ga}{\Gamma} \newcommand{\De}{\Delta} \newcommand{\Th}{\Theta} \newcommand{\La}{\Lambda} \newcommand{\Si}{\Sigma} \newcommand{\Ph}{\Phi} \newcommand{\Ps}{\Psi} \newcommand{\Om}{\Omega} \newcommand{\NN}{\mathbb N} \newcommand{\ZZ}{\mathbb Z} \newcommand{\QQ}{\mathbb Q} \newcommand{\RR}{\mathbb R} \newcommand{\CC}{\mathbb C} \newcommand{\HH}{\mathbb H} \newcommand{\DD}{\mathbb D} \newcommand{\TT}{\mathbb T} \newcommand{\KK}{{\mathbb K}} \newcommand{\oo}{{\infty}} \newcommand{\PP}{\mathbb P} \newcommand{\BB}{\mathbb B} \newcommand{\MM}{\mathbb M} \newcommand{\alt}{\operatorname{alt}} \newcommand{\dom}{\operatorname{Dom}} \newcommand{\ceil}{\operatorname{ceil}} \newcommand{\Diff}{\operatorname{Diff}} \newcommand{\ev}{\operatorname{ev}} \newcommand{\floor}{\operatorname{floor}} \newcommand{\ggT}{\operatorname{ggT}} \newcommand{\grad}{\operatorname{grad}} \newcommand{\graph}{\operatorname{Graph}} \newcommand{\im}{\operatorname{Im}} \newcommand{\id}{\operatorname{id}} \newcommand{\incl}{\operatorname{incl}} \newcommand{\kgV}{\operatorname{kgV}} \newcommand{\li}{\operatorname{li}} \newcommand{\ord}{\operatorname{ord}} \newcommand{\ptp}{\operatorname{ptp}} \newcommand{\rang}{\operatorname{rang}} \newcommand{\sgn}{\operatorname{sgn}} \newcommand{\sym}{\operatorname{sym}} \newcommand{\trg}{\operatorname{Trg}} \newcommand{\spur}{\operatorname{spur}} \newcommand{\card}{\operatorname{card}} \newcommand{\R}{\Rightarrow} \newcommand{\L}{\Leftarrow} \newcommand{\gdw}{\Leftrightarrow} \) Hallo, Ich habe das folgende Probelm. Mit table kann ich in Mathematica Listen erstellen. Wenn ich zum Beispiel Table[{If[PrimeQ[x^2+2],x^2+2],If[PrimeQ[x^2+2],Mod[x,3],0},{x,1,100}] schreibe, so bekomme ich eine liste die immer {0,0} enthält wenn $x^2+2$ keine Primzahl ist und $\{x^2+2,Mod[x,3]\}$ wenn $x$ eine Primzahl ist. Ich bin aber nur an den Fällen interessiert wo $x^2+2$ eine Primzahl ist. Die Liste enthält aber zumeist die Einträge ${0,0}$ weil ja die Primzahlne nicht so dicht gesäht sind. Frage: Wie kann ich im Befehl table nur die Einträge listen, bei denen $x^2+2$ tatsächlich prim ist? Danke lg Oliver🙂\(\endgroup\)


   Profil
endy
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 10.01.2011
Mitteilungen: 3250
  Beitrag No.1, eingetragen 2021-08-22

Hallo. Suchst du etwa folgendes? \sourceon mathematica (* In *) Clear @ "Global`*" Cases[Range @ 100, x_ /; PrimeQ[x^2 + 2] :> {x^2 + 2, Mod[x, 3]}] (* Out *) {{3, 1}, {11, 0}, {83, 0}, {227, 0}, {443, 0}, {1091, 0}, {1523, 0}, {2027, 0}, {3251, 0}, {6563, 0}, {9803, 0}} \sourceoff Gruss endy


   Profil
OliverFuchs
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 25.03.2020
Mitteilungen: 131
Wohnort: Wien, Österreich
  Beitrag No.2, vom Themenstarter, eingetragen 2021-08-23

Hallo, ja genau das suche ich nur kann ich die Syntax des Befehls nicht ganz verstehen. Ich dachte zuerst man kann das mit table lösen. Cases dürfte ein neuer Befehl sein. Aber forallem der @ Operator ist mir in Mathematica schon untergekommen. Aber ich weiß nicht wie man diesen einsetzen soll. Danke lg Oliver🙂


   Profil
endy
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 10.01.2011
Mitteilungen: 3250
  Beitrag No.3, eingetragen 2021-08-30

Hallo. \sourceon mathematica (* in *) Clear @ "Global`*" f @ x x // f (* out *) f[x] f[x] \sourceoff Die Schreibweisen mit @ und mit // sind also Alternativen zu der traditionalen Schreibweise.Sie ersparen eine Menge eckige Klammern und sind meiner Meinung nach deutlich einfacher lesbar. Insbesondere kann man mit // und der # & Notation Argumente "pipen" und Code schreiben den man einfach von links nach rechts lesen kann. Beispiele dazu findest du genügend in meinem Notizbuch oder auch im mma Forum. Insbesondere findest du auch etwa 10 PDFs in meinen Notizbuch zur mma Programmierung. Zum Einstieg sind meiner Meinung nach Richard Gaylord: Wolfram Programming Language Fundamentals Nancy Blachman : Demystifying Rules gut geeignet. Gruss endy


   Profil
OliverFuchs
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 25.03.2020
Mitteilungen: 131
Wohnort: Wien, Österreich
  Beitrag No.4, vom Themenstarter, eingetragen 2021-09-19

\(\begingroup\)\(\newcommand{\al}{\alpha} \newcommand{\be}{\beta} \newcommand{\bs}{\backslash} \newcommand{\ga}{\gamma} \newcommand{\de}{\delta} \newcommand{\ep}{\varepsilon} \newcommand{\ze}{\zeta} \newcommand{\et}{\eta} \newcommand{\io}{\iota} \newcommand{\ka}{\kappa} \newcommand{\la}{\lambda} \newcommand{\rh}{\rho} \newcommand{\si}{\sigma} \newcommand{\ta}{\tau} \newcommand{\ph}{\varphi} \newcommand{\ch}{\chi} \newcommand{\ps}{\psi} \newcommand{\om}{\omega} \newcommand{\Ga}{\Gamma} \newcommand{\De}{\Delta} \newcommand{\Th}{\Theta} \newcommand{\La}{\Lambda} \newcommand{\Si}{\Sigma} \newcommand{\Ph}{\Phi} \newcommand{\Ps}{\Psi} \newcommand{\Om}{\Omega} \newcommand{\NN}{\mathbb N} \newcommand{\ZZ}{\mathbb Z} \newcommand{\QQ}{\mathbb Q} \newcommand{\RR}{\mathbb R} \newcommand{\CC}{\mathbb C} \newcommand{\HH}{\mathbb H} \newcommand{\DD}{\mathbb D} \newcommand{\TT}{\mathbb T} \newcommand{\KK}{{\mathbb K}} \newcommand{\oo}{{\infty}} \newcommand{\PP}{\mathbb P} \newcommand{\BB}{\mathbb B} \newcommand{\MM}{\mathbb M} \newcommand{\alt}{\operatorname{alt}} \newcommand{\dom}{\operatorname{Dom}} \newcommand{\ceil}{\operatorname{ceil}} \newcommand{\Diff}{\operatorname{Diff}} \newcommand{\ev}{\operatorname{ev}} \newcommand{\floor}{\operatorname{floor}} \newcommand{\ggT}{\operatorname{ggT}} \newcommand{\grad}{\operatorname{grad}} \newcommand{\graph}{\operatorname{Graph}} \newcommand{\im}{\operatorname{Im}} \newcommand{\id}{\operatorname{id}} \newcommand{\incl}{\operatorname{incl}} \newcommand{\kgV}{\operatorname{kgV}} \newcommand{\li}{\operatorname{li}} \newcommand{\ord}{\operatorname{ord}} \newcommand{\ptp}{\operatorname{ptp}} \newcommand{\rang}{\operatorname{rang}} \newcommand{\sgn}{\operatorname{sgn}} \newcommand{\sym}{\operatorname{sym}} \newcommand{\trg}{\operatorname{Trg}} \newcommand{\spur}{\operatorname{spur}} \newcommand{\card}{\operatorname{card}} \newcommand{\R}{\Rightarrow} \newcommand{\L}{\Leftarrow} \newcommand{\gdw}{\Leftrightarrow} \) Hallo, Danke für die Antworten. Ich glaube ich habe die Lösung mit dem Cases-Befehl nun so einigermaßen verstanden. Jetzt würde ich aber gerne eine Liste der Form $\{\{1,1\},\{1,2\},\cdots ,\{1,m\},\{2,1\},\cdots,\{2,m\},\cdots,\cdots, \{n,m\}\}$ bearbeiten. Konkret soll meine Auswahlbedingung Mod[i*j,m]==0 sein. Das bekomme ich aber nicht hin. Schon das erstellen der Liste schaffe ich nicht. Mit $A=Table[\{i,j\},\{i,1,n\},\{j,1,m\}]$ bekomme ich $A=\{\{\{1,1\},\cdots,\{n,m\}\}\}$. Also eine Klammerung zu viel. Wenn ich $B=Table[\{i,1\},\{i,1,n\}]$ mache bekomme ich. $\{\{1,1\},\{2,1\},\cdots,\{n,1\}\}$. Also das Gewünschte. Mit dem Einsetzen des zweiten Index kommt aber diese Zusätzliche Klammer. Ich nehme an, dass ist der Grund warum bei mir $Cases[A,i\backslash ; Mod[i,4]==0:> \{i,j\}]$ beziehungsweise. $Cases[A,\{i,j\}\backslash ;Mod[i*j,4]==0:> \{i,j\}]$ nicht geht. Danke lg Oliver🙂 PS: Ich möchte die Nullteiler in einem $\ZZ_m,m\not\in\PP$ finden.\(\endgroup\)


   Profil
endy
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 10.01.2011
Mitteilungen: 3250
  Beitrag No.5, eingetragen 2021-09-19

Hallo. \sourceon mathematica Clear @ "Global`*" nullteiler[m_] := Select[Range @ (m - 1), GCD[#, m] != 1 &] nullteiler @ 4 nullteiler @ 7 {#, nullteiler[#]} & /@ Range @ 20 // MatrixForm \sourceoff $ \left( \begin{array}{cc} 1 & \{\} \\ 2 & \{\} \\ 3 & \{\} \\ 4 & \{2\} \\ 5 & \{\} \\ 6 & \{2,3,4\} \\ 7 & \{\} \\ 8 & \{2,4,6\} \\ 9 & \{3,6\} \\ 10 & \{2,4,5,6,8\} \\ 11 & \{\} \\ 12 & \{2,3,4,6,8,9,10\} \\ 13 & \{\} \\ 14 & \{2,4,6,7,8,10,12\} \\ 15 & \{3,5,6,9,10,12\} \\ 16 & \{2,4,6,8,10,12,14\} \\ 17 & \{\} \\ 18 & \{2,3,4,6,8,9,10,12,14,15,16\} \\ 19 & \{\} \\ 20 & \{2,4,5,6,8,10,12,14,15,16,18\} \\ \end{array} \right) $ Gruss endy


   Profil
OliverFuchs
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 25.03.2020
Mitteilungen: 131
Wohnort: Wien, Österreich
  Beitrag No.6, vom Themenstarter, eingetragen 2021-09-21

\(\begingroup\)\(\newcommand{\al}{\alpha} \newcommand{\be}{\beta} \newcommand{\bs}{\backslash} \newcommand{\ga}{\gamma} \newcommand{\de}{\delta} \newcommand{\ep}{\varepsilon} \newcommand{\ze}{\zeta} \newcommand{\et}{\eta} \newcommand{\io}{\iota} \newcommand{\ka}{\kappa} \newcommand{\la}{\lambda} \newcommand{\rh}{\rho} \newcommand{\si}{\sigma} \newcommand{\ta}{\tau} \newcommand{\ph}{\varphi} \newcommand{\ch}{\chi} \newcommand{\ps}{\psi} \newcommand{\om}{\omega} \newcommand{\Ga}{\Gamma} \newcommand{\De}{\Delta} \newcommand{\Th}{\Theta} \newcommand{\La}{\Lambda} \newcommand{\Si}{\Sigma} \newcommand{\Ph}{\Phi} \newcommand{\Ps}{\Psi} \newcommand{\Om}{\Omega} \newcommand{\NN}{\mathbb N} \newcommand{\ZZ}{\mathbb Z} \newcommand{\QQ}{\mathbb Q} \newcommand{\RR}{\mathbb R} \newcommand{\CC}{\mathbb C} \newcommand{\HH}{\mathbb H} \newcommand{\DD}{\mathbb D} \newcommand{\TT}{\mathbb T} \newcommand{\KK}{{\mathbb K}} \newcommand{\oo}{{\infty}} \newcommand{\PP}{\mathbb P} \newcommand{\BB}{\mathbb B} \newcommand{\MM}{\mathbb M} \newcommand{\alt}{\operatorname{alt}} \newcommand{\dom}{\operatorname{Dom}} \newcommand{\ceil}{\operatorname{ceil}} \newcommand{\Diff}{\operatorname{Diff}} \newcommand{\ev}{\operatorname{ev}} \newcommand{\floor}{\operatorname{floor}} \newcommand{\ggT}{\operatorname{ggT}} \newcommand{\grad}{\operatorname{grad}} \newcommand{\graph}{\operatorname{Graph}} \newcommand{\im}{\operatorname{Im}} \newcommand{\id}{\operatorname{id}} \newcommand{\incl}{\operatorname{incl}} \newcommand{\kgV}{\operatorname{kgV}} \newcommand{\li}{\operatorname{li}} \newcommand{\ord}{\operatorname{ord}} \newcommand{\ptp}{\operatorname{ptp}} \newcommand{\rang}{\operatorname{rang}} \newcommand{\sgn}{\operatorname{sgn}} \newcommand{\sym}{\operatorname{sym}} \newcommand{\trg}{\operatorname{Trg}} \newcommand{\spur}{\operatorname{spur}} \newcommand{\card}{\operatorname{card}} \newcommand{\R}{\Rightarrow} \newcommand{\L}{\Leftarrow} \newcommand{\gdw}{\Leftrightarrow} \) Hallo, Danke für die Antwort, Den Mathematica Code muss ich mir noch ansehen. Den müssten ich nämlich adaptieren. Denn, dass $\overline{a}\in\ZZ_m$ genau dann ein Nullteiler ist, wenn $\ggT(a,m)\neq 1$ ist, also in $\ZZ_m\backslash \{0\}$ es nur Elemente gibt, die entweder Nullteiler sind oder invertierbar. das hast Du in der Formel verwendet, aber genau das möchte ich zeigen. Das konnte ich jetzt auch schon theoretisch mit dem Hinweis aus dem Forum, dass jedes Element in $\ZZ_m\backslash\{0\}$ entweder eines ist durch das man kürzen kann oder eben nicht. Mathematica wollte ich aber verwenden mich dem ohne Theorie zu nähern. Daher ist ein Element $(i+m\ZZ)\in \ZZ_m\backslash\{0\}$ genau dann Nullteiler wenn es ein $(j+m\ZZ)\in \ZZ_m\backslash\{0\}$ gibt, mit $(i+m\ZZ)(j+m\ZZ)=(0+m\ZZ)\gdw i\cdot j\equiv 0(\mod m)$. Also brauche ich für jedes Element $m$ eine Liste $A=\{\{1,1\},\{1,2\},\cdots,\{1,m\},\{2,1\},\cdots, \{2,m\},\cdots \{m,m\}\}$. Aus dieser Liste sind nun jene Elmente zu extrahieren für die $Mod[i*j,m]==0$ ist. Dann habe ich die Elemente die Nullteiler sind isoliert. Natürlich kommen da noch Doppelnennungen vor. (es wird sowohl $\{i,j\}$ als auch $\{j,i\}$ für jeden Nulleiler $i$ auch gelistet !) Die sollte man auch noch raus bekommen. Also eventuell eine Liste aller $i$ generieren für die es ein $j$ gibt, mit $Mod[i*j,m]==0$. Das wäre mein Ziel gewesen. Trotzdem danke für die Antwort. Vieleicht kann ich ja mit dem Select-Befehl zum Ziel kommen. lg Oliver🙂 Ps: Die Ausgabeform gefällt mir gut. \(\endgroup\)


   Profil
endy
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 10.01.2011
Mitteilungen: 3250
  Beitrag No.7, eingetragen 2021-09-22

Hallo. In meinem Notizbuch befindet sich ein Programm,welches das gewünschte leistet ( wenn man das Programm entsprechend "dumm" macht 😃 ) \sourceon mathematica Clear @ "Global`*" Clear@polynomialalgebramultiplicationtable polynomialgebramultiplicationtable::usage = "polynomialalgebramultiplicationatable[x,n,f[x]] berechnet die \ Multiplikationstabelle mit den Relationen n=0 und f(x)=0 "; polynomialalgebramultiplicationtable[variable_Symbol, modulus_Integer, relation_] := Module[{degreerelation = Exponent[relation, variable], tuples, polynomialalgebratable, multiplicationtable, multiplicationtablemodulomodulusandrelation}, tuples = Tuples[Range[0, modulus - 1], degreerelation]; polynomialalgebratable = (tuples.variable^ Range[0, degreerelation - 1]) // Sort; multiplicationtable = Apply[Times, Outer[List, polynomialalgebratable, polynomialalgebratable], {2}] // Expand; multiplicationtablemodulomodulusandrelation = PolynomialMod[multiplicationtable, {relation, modulus}]; TableForm[multiplicationtablemodulomodulusandrelation, TableHeadings -> {polynomialalgebratable, polynomialalgebratable}]] ?polynomialgebramultiplicationtable nullteiler2[n_] := polynomialalgebramultiplicationtable[x, n, x] nullteiler2[4] nullteiler2[6] nullteiler2[8] nullteiler2[10] \sourceoff Gruss endy


   Profil
OliverFuchs
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 25.03.2020
Mitteilungen: 131
Wohnort: Wien, Österreich
  Beitrag No.8, vom Themenstarter, eingetragen 2021-09-23

Hallo endy, Wow, vielen Dank für die Arbeit. Ich habe nur gehofft dass das mit Mathematica einfacher geht. Ausserdem habe ich nicht gewusst, dass man in Mathematica auch Programmieren kann. Ich dachte dafür ist Matlab gut. Ich möchte mir nämlich Computerwerkzeuge neben dem Studium erarbeiten, die mir die Knochenarbeit etwas erleichtern. Da ist aber je einacher desto besser angesagt. Nochmals vielen Danke, mal sehen ob ich dazu komme mir das anzusehen. lg Oliver🙂


   Profil
OliverFuchs hat die Antworten auf ihre/seine Frage gesehen.
OliverFuchs hat selbst das Ok-Häkchen gesetzt.

Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2021 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]