Also, ich versuche, etwas ähnliches zu einer paginator (Liste der Seitenzahlen), wo die aktuelle Zahl in der Mitte zu tun, oder so nah wieErste Zahlen um eine Reihe
Jeder Weg kann ich es lösen ist hart und komisch, nur fragen, ob ein netter mathy Weg dorthin es
gegeben zu tun ist :):
a
: aktuelle Seitenzahlx
: erste Seitenzahly
: letzte Seitenzahln
: Nummer erforderlich
ich eine Liste von Zahlen erzeugen möchten, wo a
so nah an der Mitte ist wie sein kann, während des Aufenthaltes in x
und y
würde so f(5, 1, 10, 5)
würde [3, 4, 5, 6, 7]
zurückgeben aber f(1, 1, 10, 5)
würde zurückgeben [1, 2, 3, 4, 5]
und f(9, 1, 10, 5)
würdezurückgeben
Kann mir jemand einen schönen Weg vorstellen, so etwas zu bekommen?
In einer wahrscheinlich komplizierten Weise in Rubin implementiert, kann es einfacher gemacht werden?
def numbers_around(current:, total:, required: 5)
required_before = (required - 1)/2
required_after = (required - 1)/2
before_x = current - required_before
after_x = current + required_after
if before_x < 1
after_x += before_x.abs + 1
before_x = 1
end
if after_x > total
before_x -= (after_x - total)
after_x = total
end
(before_x..after_x)
end
in welcher Sprache? – Nidhoegger
Jede Sprache, ich bin einfach –
Was möchten Sie tun, wenn (y-x)