0 Daumen
956 Aufrufe
Mahlzeit,

ich habe eine leicht knifflige Frage:

Ich suche eine Funktion f(x), die mir zu jedem x ∈ ℕ angibt, wie oft ich x / 2 rechnen kann, sodass das Ergebnis noch größer/gleich 1 ist.

Dabei meint x/2 die Ganzzahldivision, also zB 5 / 2=2.

Für x=1 oder 2 ist f(x)=1.

Für x=3 oder 4 oder 5 oder 6 ist f(x)=2.

Für x=7 oder 8 oder 9 oder 10 oder 11 oder 12 oder 13 oder 14 oder 15 ist f(x)=3.

Es ergibt sich also eine Treppenfunktion, wobei sich die Anzahl der passenden x-Werte für jeden weiteren Funktionswert immer verdoppelt (siehe mein Test für die ersten Zahlen).

Nur, wie kann ich das konkret als Funktion f(x) schreiben?

Gruß
Avatar von
Sollte nicht  f(1) = 0  und  (3) = 1  und  f(7) = 2  sein?
ja, hast recht, da hab ich mich vertan^^

also

f(1)=0,

f(2)=f(3)=1,

f(4)=f(5)=f(6)=f(7)=2,

f(8)=f(9)=f(10)=f(11)=f(12)=f(13)=f(14)=f(15)=3

usw
Die Antwort findest Du unten :-)

1 Antwort

+1 Daumen

 

ich würde zu Deinem Test allerdings sagen:

f(1) = 0, denn 1/2 = 0,5 < 1

f(2) = 1, denn 2/2 = 1 ≥ 1

f(3) = 1, denn 3/2 = 1,5 ≥ 1

f(4) = 2, denn 4/2/2 = 1 ≥ 1

f(5) = 2

f(6) = 2

f(7) = 2

f(8) = 3, denn 8/2/2/2 = 1 ≥ 1

 

Dann würde ich die Funktion vorerst folgendermaßen definieren:

f(x) = ln(x)/ln(2)

 

Nun gibt es als Ergebnis aber auch unendlich viele unganzzahlige Zahlen.

Das werde ich in einem Kommentar noch korrigieren :-)

 

Besten Gruß

Avatar von 32 k

Hello again :-)

 

Man müsste, um nur ganzzahlige Lösungen zu bekommen, ln(x)/ln(2) auf die nächst kleinere ganze Zahl abrunden. (Idee: mod verwenden). 

In meinem Programm habe ich dazu lediglich den Befehl floor() gefunden.

Insgesamt also:

f(x) = floor(ln(x)/ln(2))

Und das sieht das ganz cool aus, nicht wahr?

 

Besten Gruß

das sieht gut aus!

Sagst Du mir auch, wie man darauf kommt bzw. woher Du wusstest, dass es so sein muss?

Gruß

Ja sicher :-)

Ich hatte mir nach Ansicht Deiner Aufgabe überlegt:

f(2) = 1

f(4) = 2

f(8) = 3 etc.

Also ist zum Beispiel x = 8 und f(8) = 3

Das heißt, der y-Wert ist der Logarithmus des x-Wertes zur Basis 2:

2y = 8 = x

2y = x

Nun logarithmieren wir auf beiden Seiten (Basis 2):

y = log2(x)

Und nach irgendeinem Logarithmus-Gesetz :-D

ist

log2(x) = ln(x)/ln(2) | also zur Basis e

oder auch

log2(x) = log10(x)/log10(2) | also zur Basis 10

(Die zu logarithmierende Zahl kommt über den Bruchstrich, die Basis darunter.)

 

Damit hatte ich die Kurve.

Du wolltest aber eine Treppenfunktion, deshalb mussten nicht-ganzzahlige y-Werte noch abgerundet werden.

Das konnte ich dann bei dem von mir benutzten Programm GeoGebra mit dem Befehl floor() erreichen.

Bei anderen Programmen muss es wohl auch irgendwelche Abrundungsbefehle geben, oder man muss irgendwie mit Modulo (dem Divisionsrest) arbeiten.

danke Dir, habe es verstanden!


Gruß

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Mathelounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community