Bildungsschrift zu einer Folge

Hallo,

ich habe ein, wie ich finde, spannendes mathematisches Problem.

Folgende Folge entspricht den Zähnenummern eines 32-Zähne Zahnrades:

32
8
16
24
1
9
17
25
2
10
18
26
3
11
19
27
4
12
20
28
5
13
21
29
6
14
22
30
7
15
23
31

Diese Folge ist so aufgebaut, dass von Position zu Position der Umfahrungswinkel des Zahnrades immer >=90° ist bzw. die Differenz in Zahnrädern ausgedrückt >=8 ist. Durch die durchgängige Kreisamnordnung erbigt sich natürlich keine konstant steigende oder fallende Folge, sondern sie springt immer wieder an einen niedrigeren Wert zurück und steigt dann erneut.

Ich würde gerne hierfür eine Exceltabelle oder ein kleines Programm schreiben, in dem man jede beliebige Zähneanzahl eingeben kann und das Programm einem die Folge ausspuckt.

Das ganze hat mehrere Haken: Es sollen in einer anderen Formel (die ich schon habe), jeweils alle ganzen Teiler zwischen 2 und 4 erkannt werden (also 2, 3 oder 4 eben) und von ihnen schließlich der größte als Berechnungsteiler geweählt werden. D.h., wenn eine Gesamtzähnezahl sich nicht durch vier teilen lässt, dann soll eben mit 3 oder entsprechend mit 2 gerechnet werden. Das verändert jedoch wiederum die Folgenform, denn dann verkürzen sich die Intervalle, innerhalb derer die Folge im Wert zurückspringt, ist ja logisch… Denn dann würde sich der kreis quasi durch 3 Teilen und entsprechend käme man schneller wieder am Anfang der Zähnenummern an usw.

Also, ich weiß nicht, ob ich das jetzt genau genug erklärt habe. Also mal ganz naiv gesagt, ich suche eine Bildungsschrift für eine Folge, in der sich ein konstanter Teiler variable einsetzen lässt (also für die gesamte Folge konstant aber von Folge zu Folge unterschiedlich wählbar) und in der mit einer vorgegebenen Zähnegesamtzahl gerechnet wird.

Und wen dann noch jeamdn weiß, wie man bei Excel nach einer bestimten Anzahl Zellen, die sich eben nach der eingegebenen Zahl richten müssen, die Folge stoppen kann, dann wäre es perfekt. Aber ich will nicht zu hoch greifen. Ich habe stundenlang versucht eine BIldungsschrift zu finden, habe es aber nicht geschafft. Trotzdem leuchtet ja jedem sofort bei Betrachtung ein, wie die Regel verläuft. Also für n=32 eben:
n
n/4 (vorgegebener Teiler für diese Folge)
2*n/4
3*n/4
1
n/4+1
2*n/4+1
3*n/4+1
2
n/4+2
2*n/4+2

.
.
.

usw…

Ich denke die ganze Zeit, dass es doch so einfach sein muss. Wenn man es betrachtet, dann wirkt es so simpel…

Vielleicht kann mir ja jemand helfen! Ich würde mich sehr sehr freuen! DANKE im voraus!

Gruß,
Cate

Muss mich leider ausklinken, interessantes problem, aber keine zeit.

HG, Manuel Schröter

Sorry, kann im Moment leider nicht weiter helfen :frowning:

  1. deine Zahnbeschriftung ist unpraktisch, du verwendest Nr 36 wie eine Nr 0
    ich schlage vor, mit 1 zu beginnen und mit 8/16/24/32 zu enden
  2. gesucht ist ein allgemeiner Algorithmus zur Bestimmung der Nr jedes beliebigen Zahnes
    a1 = 1
    a2 = 9 usw
    wobei Schrittweite und Iterationsweite variabel sein sollen, wenn ich das mal so bezeichnen darf.
    an = 1 + (n \ i) + s * ((x-1) mod i)
    also zB bei 32 Zähnen mit i=4 und s=8
    „“ ist die ganzzahlige Division und „mod“ (modulo) ist der Rest bei der ganzzahligen Division
  3. für die unterschiedlichen Zahnanzahlen muss jeweils ein geeignetes i und s gefunden werden, die bisherigen Angaben reichen aber nicht, um das jetzt zu entwerfen.
    ich schlage vor:
    if(z mod 4 == 0)i=4
    else if(z mod 3 == 0)i=3
    else if(z mod 2 == 0)i=2
    else i=4
  4. für Excel kann ich das jetzt nicht entwerfen, zumal mir der gewünschte Aufbau der Tabelle gar nicht klar ist

kleine Korrektur:
anstatt an = 1 + (n \ i) + s * ((x-1) mod i)
muss es natürlich heißen:
an = 1 + (n \ i) + s * ((n-1) mod i)

Hallo,

endlich bin ich mal dazu gekommen mich Ihrer tollen Antwort zu widmen. DANKE! Ich habe es nun geschafft die Formel in Excel zu bringen und mir ist dabei folgendes aufgefallen:
Die Formel erzeugt zwischenzeitlich auch mal Schritte von 9, was zur Folge hat, dass der Rythmus verloren geht und am Ende eine Zahl in der Reihe rausfällt (bei 32 Zähnen die 25, die sollte ganz am Anfang anstelle der 26 kommen). Da ich ja eine zusammenhängende Tabellenspalte erzeugen möchte, in den Bearbeitungsnummern entsprechende Zähnenummern zugeordnet werden sollen, ist das problematisch, denn so bringt die Folge erstmal zwei bereits vorhandene Werte, bis die 25 kommt. Kann man da noch was modifizieren.
Für s habe ich jetz einfach immer den Wert der Gesamtzähnezahl durch 4 geteilt und abgerundet, da das ja automatisch einen 90-Gradwinkel zwischen den Zähnen erzeugen müsste, also als Zahnabstand gesehen.
Ansosnten war ich total begeistert von der Formel. Die Idee mit dem Modulo ist ja wirklich großartig. So kriegt man dann auch das Pendeln hin. :o)

Ich hoffe, dass da noch was zu machen ist. Ich brüte da natürlich auch selbst drüber und sollte ich schneller sein, dann lasse ich es sie wissen!

Also, nochmal danke!

Gruß,
Cate

kleine Korrektur:
anstatt an = 1 + (n \ i) + s * ((x-1) mod i)
muss es natürlich heißen:
an = 1 + (n \ i) + s * ((n-1) mod i)

Hallo,

ich bin zwar noch nicht mit einer endgültigen Lösung vorangekommen, habe jedoch eine bessere „Trefferquote“ der Formel dadurch erzielt, indem ich in der ersten Klammer anstatt (n/i) auch (n-1/i) geschrieben habe. Leider funktioniert die Formel bei Zähnezahlen wie 21, 18 oder 15 aber immer noch nicht. Der mögliche Grund lässt sich ganz gut erkennen, wenn man die Zahlenfolge vor sich hat. Bei einer Folge mit 21 Zähnen beispielsweise sollten die ersten 4 Werte lauten: 1, 7, 13, 19. Da 21/4 aufgerundet 6 ergibt ergibt. In 6er-Schritten sollen also die Zähnenummern aufgeführt werden. Leider springt der 4. Wert aber schon auf die 2, was den ganzen Algorithmus verschiebt und schlussendlich zur Folge hat, dass sich Werte doppeln, bevor alle Zähnenummern durchgelaufen sind.
Im MOment fällt mir leider nicht ein, wie ich das Problem lösen kann…
Vielleicht können sie mir ja helfen. :o)
DANKE!!!

Gruß,
Cate

anstatt (n/i) auch (n-1/i) geschrieben habe.

kann es sein, dass due / und \ verwechselt hast?
/ ist die normale Division, \ gibt nur ganzzahlige Ergebnisse, das ist dann das gleiche wie:
a\b = |a/b|
also abgerundet (nicht gerundet sondern immer abgerundet)

anstatt (n/i) auch (n-1/i) geschrieben habe.

kann es sein, dass du / und \ verwechselt hast?
/ ist die normale Division, \ gibt nur ganzzahlige Ergebnisse, das ist dann das gleiche wie:
a\b = [a/b]
also abgerundet (nicht gerundet sondern immer abgerundet)

Hallo,

danke für die Antwort! Ich habe das mit der ganzzahligen Division schon verstanden. In Exel gibt es diese Rechenoperation na leider nicht, wohl aber die Funktion abrunden. Diese wende ich auf alle Ergebnisse n\i auch an. Dann habe ich für die ersten sagen wir mal 10 Werte dieser Division ie Folge: 0,0, 0, 1, 1, 1, 1, 2, 2, 2. Das Problem ist schon die erste 1. Sie führt zudem Intervallsprung von 8 auf 9, sodass der endgültige Wert 26 und nicht 25 heisst. Wenn sie wollen, kann ich Ihnen die Exceltabelle zukommen lassen. Es ist eigentlich relativ ersichtlich, was da passiert…
Ich hatte gerade eine Zahn-OP und bin etwas in meiner Denkfähigkeit eingeschränkt. Daher will ich es jetzt mal dabei belassen. Vielleicht fällt Ihnen noch etwas ein. Wenn Siesich Ihrer Formel sicher sind, dann macheich bestimmt etwas bei der Berechnung falsch. Das sollte sich aberauf jeden Fall herasufinden lassen…

Viele Grüße,
Cate

0,0, 0, 1, 1, 1, 1, 2, 2, 2 ist schon die gewünschte Zahlenfolge … wieso stört die erste 1?

mein Beispiel von oben:
an = 1 + (n \ i) + s * ((n-1) mod i)

also zB bei z=32 Zähnen mit i=4 und s=8
an = 1 + ((n-1) \ 4) + 8 * ((n-1) mod i)
1.a1 = 1 + (0 \ 4) + 8 * (0 mod 4)=1+(0)+8*(0)=1
2.a2 = 1 + (1 \ 4) + 8 * (1 mod 4)=1+(0)+8*(1)=9
3.a3 = 1 + (2 \ 4) + 8 * (2 mod 4)=1+(0)+8*(2)=17
4.a4 = 1 + (3 \ 4) + 8 * (3 mod 4)=1+(0)+8*(3)=25
5.a5 = 1 + (4 \ 4) + 8 * (4 mod 4)=1+(1)+8*(0)=2
6.a6 = 1 + (5 \ 4) + 8 * (5 mod 4)=1+(1)+8*(1)=10
7.a7 = 1 + (6 \ 4) + 8 * (6 mod i)=1+(1)+8*(2)=18

hier ein Basic-Programm, das die nötigen Korrekturen vornimmt. Die bisherige Formel (fnx) ist nur um eine Korrektur (fny) zu erweitern, sobald zu hohe Zahnnummern berechnet werden, weil die Anzahl der Zähne (z) kleiner ist als das Produkt aus i * s.

z = 33
i = 8
s = -INT(-z / i)
CLS
DEF fnx (n) = INT(1 + (n - 1) / i + s * ((n - 1) MOD i))
DEF fny © = (fnx(z + c) c)
FOR n = 1 TO z
x = fnx(n)
PRINT n, x - fny(1) - fny(2) - fny(3) - fny(4)
NEXT n


1 1
2 6
3 10
4 14
5 18
6 22
7 27
8 32
9 2
10 7
11 11
12 15
13 19
14 23
15 28
16 33
17 3
18 8
19 12
20 16
21 20
22 24
23 29
24 34
25 4
26 9
27 13
28 17
29 21
30 25
31 30
32 35
33 5

die Korrekturen waren in der vorherigen Lösung icht ausreichend, daher berichtigt:

z = 33
i = 8

s = -INT(-z / i)
CLS
DEF fnx (n) = INT(1 + (n - 1) / i + s * ((n - 1) MOD i))
DEF FNY © = (fnx(z + C) C)
FOR n = 1 TO z
x = fnx(n)
PRINT n, x - FNY(1) - FNY(2) - FNY(3) - FNY(4) - FNY(5) - FNY(6)
NEXT n


1 1
2 6
3 10
4 14
5 18
6 22
7 26
8 30
9 2
10 7
11 11
12 15
13 19
14 23
15 27
16 31
17 3
18 8
19 12
20 16
21 20
22 24
23 28
24 32
25 4
26 9
27 13
28 17
29 21
30 25
31 29
32 33
33 5