www.vorhilfe.de
- Förderverein -
Der Förderverein.

Gemeinnütziger Verein zur Finanzierung des Projekts Vorhilfe.de.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Impressum
Forenbaum
^ Forenbaum
Status VH e.V.
  Status Vereinsforum

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Suchen
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Mathematica" - Veränderung von Listen etc
Veränderung von Listen etc < Mathematica < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Mathematica"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Veränderung von Listen etc: Tipp
Status: (Frage) beantwortet Status 
Datum: 12:48 Mo 27.06.2011
Autor: Paulo26

Aufgabe
ich habe zum Beispiel (2,3,4,5,6). Hierbei handelt es sich um eine Liste.

Ich möchte nun verschiedene Variationen angezeigt bekommen.

2,3,4,5,5 also letztes -1
2,3,4,4,7 also vorletztes -1, letztes +1
2,3,3,6,6 also drittletztes -1, vorletztes +1
2,2,5,5,6 also viertletztes -1, drittletztes +1
1,4,4,5,6 also fünftletztes -1, viertletztes +1 usw.

Dies soll für alle möglich Eingaben Zahlen gelten.

Hallo,
ich benötige mal Eure Hilfe.

Bei der obenen genannten Aufgabe komme ich nicht weiter.

Bis jetzt habe ich mir die Zeile jeweils als Matrix angeben lassen und die benötigten Zahlen verändert. Dies ist aber auf Dauer ziemlich umständlich und aufwendig. Könnt Ihr mir sagen obs irgendwie schneller geht bzw automatisch?

Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.



        
Bezug
Veränderung von Listen etc: Antwort
Status: (Antwort) fertig Status 
Datum: 17:10 Mo 27.06.2011
Autor: Al-Chwarizmi


> ich habe zum Beispiel (2,3,4,5,6). Hierbei handelt es sich
> um eine Liste.
>  
> Ich möchte nun verschiedene Variationen angezeigt
> bekommen.
>  
> 2,3,4,5,5 also letztes -1
>  2,3,4,4,7 also vorletztes -1, letztes +1
>  2,3,3,6,6 also drittletztes -1, vorletztes +1
>  2,2,5,5,6 also viertletztes -1, drittletztes +1
>  1,4,4,5,6 also fünftletztes -1, viertletztes +1 usw.
>  

Hallo Paulo26,

um das Element an der k-ten Stelle um 1 zu vermindern
und das an der (k+1)-ten Stelle um 1 zu erhöhen, habe ich
diesen Befehl entworfen:

change[liste_, k_] := ReplacePart[ReplacePart[liste, liste[ [k] ] - 1,
     k], liste[ [k + 1] ] + 1, k + 1]

Ich definiere die Liste:

liste := {2, 3, 4, 5, 6}

und rufe dann den Befehl z.B. für k=3 auf:

change[liste, 3]

Ergebnis:       {2, 3, 3, 6, 6}

Schönheitsfehler:  für k=5 (letztes Element) gibt es noch
eine Fehlermeldung, weil das 6-te Element von liste gar
nicht existiert. Das müsste man noch mit einem If-Befehl
abfangen ...

LG   Al-Chw.



Bezug
                
Bezug
Veränderung von Listen etc: Rückfrage
Status: (Frage) beantwortet Status 
Datum: 10:43 Di 05.07.2011
Autor: Paulo26

Hallo!
vielen Dank! Es hat geklappt.
Ich will aber jetzt den nten Faktor um 2 erniedrigen und den 2*n-ten Faktor um 1 erhöhen.

Also: 1 2 3 4 5 6 7 --> 1 0 3 5 5 6 7 (n=2)
oder 1 2 3 4 5 6 7 --> 1 2 1 4 5 7 7 (n=3)

Ich habe dies mit der Replacefunktion wie oben gemacht.

change[liste_, k_] := ReplacePart[ReplacePart[liste, liste[ [k] ] - 2,
     k], liste[ [k + k] ] + 1, k +k]

Als Ergebnis habe ich allerdings {}, sprich nix.

Was mache ich da falsch??

Bezug
                        
Bezug
Veränderung von Listen etc: Antwort
Status: (Antwort) fertig Status 
Datum: 12:42 Di 05.07.2011
Autor: Al-Chwarizmi


> Hallo!
>  vielen Dank! Es hat geklappt.
>  Ich will aber jetzt den nten Faktor um 2 erniedrigen und
> den 2*n-ten Faktor um 1 erhöhen.
>  
> Also: 1 2 3 4 5 6 7 --> 1 0 3 5 5 6 7 (n=2)
>   oder 1 2 3 4 5 6 7 --> 1 2 1 4 5 7 7 (n=3)

>  
> Ich habe dies mit der Replacefunktion wie oben gemacht.
>  
> change[liste_, k_] := ReplacePart[ReplacePart[liste, liste[
> [k] ] - 2,
> k], liste[ [k + k] ] + 1, k +k]
>  
> Als Ergebnis habe ich allerdings {}, sprich nix.
>  
> Was mache ich da falsch??  

Das weiß ich nicht.
Bei mir kommt auf diesen Input:

    change[liste_, k_] := ReplacePart[ReplacePart[liste, liste[[k]] - 2,k], liste[[k + k]] + 1, k + k] 

    liste := {1, 2, 3, 4, 5, 6, 7}

    change[liste, 3]

der Output:

    {1, 2, 1, 4, 5, 7, 7}

wie gewünscht !

LG    Al-Chw.




Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Mathematica"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
ev.vorhilfe.de
[ Startseite | Mitglieder | Impressum ]