Matroids Matheplanet Forum Index
Moderiert von matroid
Mathematik » Notationen, Zeichen, Begriffe » Formel erstellen
Druckversion
Druckversion
Antworten
Antworten
Autor
Beruf Formel erstellen
FrankHeyne
Neu Letzter Besuch: in der letzten Woche
Dabei seit: 08.04.2021
Mitteilungen: 3
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Themenstart: 2021-04-08 11:22


Hallo,

ich habe mal eine Anfängerfrage zu Formelerstellung:

Meine Funktion macht nichts weiter, als eine ganze Zahl solange zu halbieren, bis sie ungerade ist. Als Programmierer mache is so etwas z.B. mit einer While-Schleife.

Aber wie kann ich diese einfache Funtion mathematisch korrekt als Einzeiler ausdrücken? Mir schwebt so etwas vor wie
  f(x) = x/2 solange x mod 2 == 0
Ist das akzeptabel?

Vielen Dank schon mal sagt
Frank



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
DerEinfaeltige
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 11.02.2015
Mitteilungen: 2757
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.1, eingetragen 2021-04-08 12:03


\[
f(n)=
\begin{cases}
f(\frac{n}{2}) & \text{if} & n \equiv 0 \mod 2 \\
n & \text{else} &  
\end{cases}\]


-----------------
Why waste time learning when ignorance is instantaneous?
- Bill Watterson -



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
StrgAltEntf
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 19.01.2013
Mitteilungen: 6773
Herkunft: Milchstraße
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.2, eingetragen 2021-04-08 12:43


Hallo FrankHeyne,

als nicht-rekursive Definition vielleicht
\[f(n)=\frac n{2^{\max\{k~:~2^k\mid n\}}}\]



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
FrankHeyne
Neu Letzter Besuch: in der letzten Woche
Dabei seit: 08.04.2021
Mitteilungen: 3
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.3, vom Themenstarter, eingetragen 2021-04-08 12:44


2021-04-08 12:03 - DerEinfaeltige in Beitrag No. 1 schreibt:
\[
f(n)=
\begin{cases}
f(\frac{n}{2}) & \text{if} & n \equiv 0 \mod 2 \\
n & \text{else} &  
\end{cases}\]

Angenommen, n ist 12, dann gibt diese Formel 6 aus.
Sie soll aber 3 ausgeben.

[Die Antwort wurde nach Beitrag No.1 begonnen.]



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
DerEinfaeltige
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 11.02.2015
Mitteilungen: 2757
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.4, eingetragen 2021-04-08 12:52


2021-04-08 12:44 - FrankHeyne in Beitrag No. 3 schreibt:
2021-04-08 12:03 - DerEinfaeltige in Beitrag No. 1 schreibt:
\[
f(n)=
\begin{cases}
f(\frac{n}{2}) & \text{if} & n \equiv 0 \mod 2 \\
n & \text{else} &  
\end{cases}\]

Angenommen, n ist 12, dann gibt diese Formel 6 aus.
Sie soll aber 3 ausgeben.

[Die Antwort wurde nach Beitrag No.1 begonnen.]

Die Formel gibt 3 zurück, nicht 6.
Beachte, dass die Definition rekursiv ist.
f(12) = f(12/2) = f(6) = f(6/2) = f(3) = 3


-----------------
Why waste time learning when ignorance is instantaneous?
- Bill Watterson -



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
ligning
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 07.12.2014
Mitteilungen: 3214
Herkunft: Berlin
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.5, eingetragen 2021-04-08 13:34


Brauchst du diese Formel wirklich genau so? Da, wo solche Gedanken in der Mathematik auftauchen, wird das oft weniger algorithmisch beschrieben, eher etwa so:


Schreibe $n = 2^k n'$ mit ungeradem $n'$, [behandle $k$ und $n'$ getrennt.]



-----------------
⊗ ⊗ ⊗



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
FrankHeyne
Neu Letzter Besuch: in der letzten Woche
Dabei seit: 08.04.2021
Mitteilungen: 3
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.6, vom Themenstarter, eingetragen 2021-04-08 14:46


2021-04-08 12:52 - DerEinfaeltige in Beitrag No. 4 schreibt:

Die Formel gibt 3 zurück, nicht 6.
Beachte, dass die Definition rekursiv ist.
f(12) = f(12/2) = f(6) = f(6/2) = f(3) = 3

Völlig richtig, ich stand halt auf dem Schlauch, sorry.

2021-04-08 13:34 - ligning in Beitrag No. 5 schreibt:
Brauchst du diese Formel wirklich genau so?

Ja, die brauch ich so :-)
Man kann damit schön ein bekanntes Problem vereinfachen.
Ich schreib bald mal mehr dazu.



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
hyperG
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 03.02.2017
Mitteilungen: 1425
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.7, eingetragen 2021-04-09 19:59


2021-04-08 11:22 - FrankHeyne im Themenstart schreibt:
... Funtion mathematisch korrekt als Einzeiler ausdrücken?
...
Vielen Dank schon mal sagt
Frank

Hallo Frank,

Was die meisten vergessen haben, ist der Zusatz: 0 für n<=0
(für Programmierung & gegen Endlosschleifen wichtig)
aber den lasse ich mal weg.

Hier 2 Einzeiler ohne "Case" oder anderen Fallunterscheidungen:

fed-Code einblenden

oder

fed-Code einblenden

Hier die Wertetabelle, die die Gleichheit zeigt:
mathematica
f[n_]:=Which[n<=0,0,Mod[n,2]==0,f[n/2],Mod[n,2]>0,n];
f2[n_]:=Which[n<=0,0,n>0,Mod[n+1,2]*f2[Ceiling[n/2]]+Mod[n,2]*n];
Table[{n,f[n],f2[n],n/GCD[n,2^n]},{n,1,32}]//Grid
1	1	1	1
2	1	1	1
3	3	3	3
4	1	1	1
5	5	5	5
6	3	3	3
7	7	7	7
8	1	1	1
9	9	9	9
10	5	5	5
11	11	11	11
12	3	3	3
13	13	13	13
14	7	7	7
15	15	15	15
16	1	1	1
17	17	17	17
18	9	9	9
19	19	19	19
20	5	5	5
21	21	21	21
22	11	11	11
23	23	23	23
24	3	3	3
25	25	25	25
26	13	13	13
27	27	27	27
28	7	7	7
29	29	29	29
30	15	15	15
31	31	31	31
32	1	1	1

Grüße Gerd


P.S.: @StrgAltEntf:
Folgender Teil Deiner "expliziten Funktion" verstehe ich nicht & er ist bestimmt auch für viele andere missverständlich:
\(\max\{k~:~2^k\mid n\}
\)
Variable k hängt für mich im "undefinierten Raum" und "|" kann alles mögliche sein (vermutlich was mit "Teiler" -> aber welche von Wem?).

Kannst Du das mit verständlichen Funktionen ausdrücken
(die wenigstens WolframAlpha oder Mathematica versteht)?
Oder soll das eine umständliche Umschreibung von ggT sein?



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
ochen
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 09.03.2015
Mitteilungen: 3153
Herkunft: der Nähe von Schwerin
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.8, eingetragen 2021-04-09 20:53


Hallo
2021-04-09 19:59 - hyperG in Beitrag No. 7 schreibt:
\(
\max\{k~:~2^k\mid n\}
\)
Variable k hängt für mich im "undefinierten Raum" und "|" kann alles mögliche sein (vermutlich was mit "Teiler" -> aber welche von Wem?).
Mit \(\max\{k~:~2^k\mid n\}\) ist die größte natürliche Zahl $k$ gemeint, sodass $n$ durch $2^k$ teilbar ist. Was stört dich daran?



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
StrgAltEntf
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 19.01.2013
Mitteilungen: 6773
Herkunft: Milchstraße
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.9, eingetragen 2021-04-09 22:00


2021-04-09 20:53 - ochen in Beitrag No. 8 schreibt:
Hallo
2021-04-09 19:59 - hyperG in Beitrag No. 7 schreibt:
\(
\max\{k~:~2^k\mid n\}
\)
Variable k hängt für mich im "undefinierten Raum" und "|" kann alles mögliche sein (vermutlich was mit "Teiler" -> aber welche von Wem?).
Mit \(\max\{k~:~2^k\mid n\}\) ist die größte natürliche Zahl $k$ gemeint, sodass $n$ durch $2^k$ teilbar ist. Was stört dich daran?


Dem ist eigentlich nichts hinzuzufügen. Ich dachte, die Schreibweise "\(a\mid b\)" für "a ist ein Teiler von b" bzw. "b ist ein Vielfaches von a" ist allgemein geläufig, wenn man sich mit Teilern beschäftigt.

Außerdem ergibt dann auch nur \(k\in\IN\) Sinn, wobei \(\IN\) hier die 0 enthält.



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
hyperG
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 03.02.2017
Mitteilungen: 1425
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.10, eingetragen 2021-04-10 00:30


Da finde ich ggT aber einfacher & verständlicher, als diese
"versteckte Schleife" -> z.B. While-Schleife:
mathematica
f[n_]:=Module[{k =n+1},While[Mod[n,2^k]!=0,k--]; k] ;
Table[{i,i/2^f[i],i/2^IntegerExponent[i, 2],i/GCD[i,2^i] },{i,20}]//Grid
1	1	1	1
2	1	1	1
3	3	3	3
4	1	1	1
5	5	5	5
6	3	3	3
7	7	7	7
8	1	1	1
9	9	9	9
10	5	5	5
11	11	11	11
12	3	3	3
13	13	13	13
14	7	7	7
15	15	15	15
16	1	1	1
17	17	17	17
18	9	9	9
19	19	19	19
20	5	5	5



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
FrankHeyne hat die Antworten auf ihre/seine Frage gesehen.
FrankHeyne wird per Mail über neue Antworten informiert.
Neues Thema [Neues Thema] Antworten [Antworten]    Druckversion [Druckversion]

 


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]