Toon posts:

[Functioneel Programmeren] Onmogelijke opgave ?

Pagina: 1
Acties:
  • 102 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik heb voor mijn studie een opgave opgekregen om in Haskell te programmeren. Nu is het probleem echter dat ik denk dat opgave heel moeilijk te beantwoorden is.

De vraag luidt : Gegeven 2 lijnstukken in het platte vlak. Ga na of deze lijnstukken gemeenschappelijke punten hebben

Eerst had ik iets geschreven die voor beide lijnen ax+b uitrekende en toen heb ik een beetje zitten redeneren met richtingscoefficienten. Maar toen bedacht ik me ineens dat het om lijnstukken gaat en niet lijnen dus viel mijn hele theorie in degen.

Met lijnstukken is het een stuk moeilijker. Ik kan wel een reeks "if's" doen maar dan moet ik wel heel veel dingen afvangen en dan is nog maar de vraag of ik zeker weet dat de lijnen gemeenschappelijke punten hebben.

Heeft iemand enig idee om me op weg te helpen.

  • The Bad Seed
  • Registratie: November 2001
  • Laatst online: 17-08 08:42

The Bad Seed

Chaotic since 1983

ik ken niks van functioneel programmeren, maar wel iets van meetkunde:

een lijnstuk is een deel van een rechte met een ax+b vorm, binnen bepaalde grenzen.
geval 1) 2 samenvallende rechten -> x-coordinaten van lijnstuk 1 vergelijken met die van lijnstuk 2(het ene lijnstuk heeft bv een x-bereik van 1-3, lijnstuk 2 heeft een x-bereik van 2-3) -> alle punten met x coord tussen 2 en 3 zijn gemeenschappelijk.)
geval 2) strikt evenwijdige rechten -> geen snijpunten
geval 3) kruisende rechten -> snijpunt bepalen en controleren of het zowel binnen lijstuk 1 al 2 ligt)

edit: je zal ook nog verticaal staande lijnstukken moeten afvangen voor je omzet naar de ax+b vorm

[ Voor 10% gewijzigd door The Bad Seed op 15-09-2003 02:33 ]

Hail to the guardians of the watchtowers of the north


  • Stamgastje
  • Registratie: April 2003
  • Laatst online: 02-02-2020
Kijk hier maar eens voor een uitleg hoe te bepalen of twee lijnstukken elkaar snijden. Ik heb dezelfde opgave gemaakt (vak IFP op de TU/e ;)) m.b.v. deze uitleg.

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 21-02 23:50
Tegenwoordig noemen ze het FP (Functional Programming), en dit is gewoon de 1e huiswerkopgave, maar, hij is nu te laat, als ie het nog niet af heeft, moest voor 9 ingeleverd zijn :)

Tis niet zo moeilijk, haskell heeft vectors e.d. gewoon ingebouwd, kwestie van basic math. Tot zo in de collegezaal CptEO...

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


  • mocean
  • Registratie: November 2000
  • Laatst online: 15-08 04:26
Ik heb voor mijn studie een opgave opgekregen om in Haskell te programmeren. Nu is het probleem echter dat ik denk dat opgave heel moeilijk te beantwoorden is.
Beetje apart dat je het hebt over een heel moeilijke opgave, die blijkbaar standaard informatica-kost is en die je met een beetje al wiskunde kan oplossen.

Maar mijn werkwijze zou zijn eerst bekijken hoe het met de lijnen zit die door de punten lopen, en daarna focussen op de lijnstukken:
1) Lopen ze evenwijdig?
1a) Zo ja, bekijk of de lijnen over elkaar heen liggen
1b) Zo ja, bekijk of de lijnstukken (deels) over elkaar heen liggen
2) Ze lopen niet evenwijdig: bereken het snijpunt van de lijnen
Bereken of het snijpunt binnen lijnstuk 1 & lijnstuk 2 valt.

Koop of verkoop je webshop: ecquisition.com