Ich habe ein Farbrad, das eine Farbe zu jeder Stunde im 24-Stunden-Format abbildet. Nun gebe ich die Stunde des Tages an und möchte diese Farben auf eine 12-Stunden-Uhr abbilden, so dass die Farben 5 Stunden vor und 6 Stunden nach der aktuellen Stunde verwendet werden. Aber es wird ein bisschen schwierig b/c der 0. Index des Ergebnisses muss immer die 0. Farbe oder die 12. Farbe des 24 Farbrads sein.Modulo-Algorithmus erweist sich schwer fassbar
Zum Beispiel gegeben colors24
als ein Array von 24 Farben und eine Stunde Zeit von 5 dann die endgültige color12
Array colors24 die Indizes als Karte würde:
{0,1,2,3,4,5,6,7,8,9,10,11}
Wenn die Stunde 3 ist, dann gilt:
{0,1,2,3,4,5,6,7,8,9,22,23}
Und wenn die Stunde 9, dann:
{12,13,14,15,4,5,6,7,8,9,10,11}
B onus-Punkte, wenn der Algorithmus unabhängig von der Größe auf zwei beliebige Arrays verallgemeinert werden kann, solange der erste durch die Sekunde gleichmäßig teilbar ist.
Erstaunlich! Ich wusste, dass es eine knappe Lösung geben musste, aber ich konnte es einfach nicht verstehen. Danke, als richtige Antwort markiert. – trans
Sorry wegen der Verzögerung. Ich bin auf andere Teile meiner App gekommen und bin gerade wieder dazu gekommen. Danke für diese Antwort. Ich bin beeindruckt. War das eine Herausforderung für dich oder bist du direkt zu dir gekommen? – trans