Abbiamo molte sfide basate su base 10, base 2, base 36 o persino base -10 , ma per quanto riguarda tutte le altre basi razionali?
Compito
Dato un numero intero in base 10 e una base razionale, restituisce il numero intero in quella base (come una matrice, una stringa, ecc.).
Processi
È difficile immaginare una base razionale, quindi visualizziamola usando Exploding Dots :
Considera questa animazione, esprimendo 17 in base 3:
Ogni punto rappresenta un'unità e le caselle rappresentano le cifre: la casella più a destra è il posto di una, la casella centrale è il posto di 3 ^ 1 e la casella più a sinistra è il posto di 3 ^ 2.
Possiamo iniziare con 17 punti al posto di uno. Tuttavia, questa è la base 3, quindi il posto deve essere inferiore a 3. Pertanto, "esplodiamo" 3 punti e creiamo un punto sulla casella a sinistra. Lo ripetiamo fino a quando non finiamo con una posizione stabile senza punti sfruttabili (cioè 3 punti nella stessa casella).
Quindi 17 nella base 10 è 122 nella base 3.
Una base frazionaria è analoga all'esplosione di un numero di punti in più di un punto. Base 3/2 esploderebbe 3 punti per creare 2.
Esprimendo 17 in base 3/2:
Quindi 17 nella base 10 è 21012 nella base 3/2.
Le basi negative funzionano in modo simile, ma dobbiamo tenere traccia dei segni (usando i cosiddetti anti-punti, pari a -1; rappresentato da un cerchio aperto).
Esprimendo 17 in base -3:
Nota, ci sono esplosioni extra per rendere uguale il segno di tutte le caselle (ignorando gli zeri).
Pertanto, 17 nella base 10 è 212 nella base -3.
Le basi razionali negative funzionano in modo simile, in una combinazione dei due casi precedenti.
Regole
- Nessuna scappatoia standard.
- Il segno di ogni "cifra" nell'output deve essere lo stesso (o zero).
- Il valore assoluto di tutte le cifre deve essere inferiore al valore assoluto del numeratore della base.
- Si può presumere che il valore assoluto della base sia maggiore di 1.
- Si può presumere che una base razionale sia nella sua forma ridotta più bassa.
- È possibile prendere il numeratore e il denominatore della base separatamente nell'input.
- Se un numero ha più rappresentazioni, è possibile emetterne una qualsiasi. (es. 12 nella base 10 può essere
{-2, -8}
e{1, 9, 2}
nella base -10)
Casi test:
Formato: {in, base} -> result
{7, 4/3} -> {3, 3}
{-42, -2} -> {1, 0, 1, 0, 1, 0}
{-112, -7/3} -> {-6, -5, 0, -1, 0}
{1234, 9/2} -> {2, 3, 6, 4, 1}
{60043, -37/3} -> {-33, -14, -22, -8}
Poiché alcuni input possono avere rappresentazioni multiple, ti consiglio di testare l'output usando questo frammento di Mathematica su TIO.
Questo è code-golf , quindi vinci gli invii con il numero di byte più breve in ogni lingua!
Per ulteriori informazioni sull'esplosione di punti, visitare il sito Web del progetto di matematica globale ! Hanno un sacco di cose fantastiche di mathy!