[PHP] Dichtstbijzijnde waarde vinden

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Bozozo
  • Registratie: Januari 2005
  • Laatst online: 20-02 16:10

Bozozo

Your ad here?

Topicstarter
Ik heb een tabel met nogal wat waarden: tabel.

Het komt er op neer dat de laatste kolom representatief is voor de hoeveelheid en verdeling van zwarte pixels van een boel ASCII tekens. Dit, uiteraard, voor een plaatje -> ASCII omzetter.

Nu kan ik voor een plaatje voor elk vakje (zeg 3x4 pixels) een soortgelijk getal uitrekenen. Het vakje moet dan in ASCII worden voorgesteld door het karakter met de dichtstbijzijnde 'zwartepixelvedeling'. Er kunnen nogal wat vakjes in een plaatje zitten, dus dit moet echt zo snel mogelijk gebeuren.

Wat is de beste methode?

Zelf zit ik te denken aan:
- Een enorm array maken met een stuk of tweeduizend elementen. Ik rond het gevonden getal af naar een integer, en pak de entity uit bijpassende array element. Nadelen: het array moet worden opgevuld dus er zijn veel dubbele elementen, en 169,5 == 170,4 -> minder detail in de ascii.
- Met een soort van haasje-over-algoritme door de waarden zigzaggen tot de dichtstbijzijnde waarde is gevonden. Nadeel: lijkt me erg langzaam.
- een ingebouwde functie van php of mysql gebruiken. Nadeel: bestaat niet voor zover ik weet :P

TabCinema : NiftySplit


Acties:
  • 0 Henk 'm!

  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023
Als je de array sorteert op je dat laatste getalletje, dan kan je daarna een binary search doen.

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

En als het in een database staat:
SQL:
1
2
3
4
5
6
SELECT
    `karakter`,
    ABS($waardevanplaatje - `laatsterijintabel`) AS `verschil`
FROM `tabel`
ORDER BY `verschil` ASC
LIMIT 1

Althans, dat zou volgens mij moeten werken. :+

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.