Ovu stranicu je najbolje pregledavati u modernom internet pregledniku s omogućenim JavaScriptom.

[NAISP] 4. laboratorijska vježba - 2021/2022

fer999

koji zad je u 12 na labosu?


Bisolvon

fer999 Imam ja sada u 14, to je prvi termin danas


Bisolvon


Ovo mi je sada doslo u 14.


WP_Deva

Bisolvon došao mi je identičan čini mi se


Svudec

Bisolvon
IdeGas Jesu vam dali kod tih klasa koje su već implementirane ili ovako opise samo?


Grga

Bisolvon isto mi je to došlo ako netko zna di ima pseudokod ili implementacija takvog neceg negdje neka javi ako nije greda


Kasperinac

Svudec dobiš kod


WP_Deva

Svudec

from statistics import median
from typing import Tuple, List
from collections import namedtuple

class Point(namedtuple('Point', ['x', 'y'])):
    __slots__ = ()
    def __str__(self) -> str:
        return f'({self.x},{self.y})'
    def __repr__(self) -> str:
        return self.__str__()

class Node:
    def __init__(self, point: Point):
        self.p = point
        self.med = 0.0
        self.left = None
        self.right = None

    def __str__(self):
        return str(self.p)

class PriorityTree:
    def __init__(self, points: List[Point]) -> None:
        if not points:
            self.root = None
        else:
            points = list(sorted(points, key=lambda p: -p[1]))
            self.root = self._create(points)

    def _create(self, points: List[Point]) -> Node:
        if not points:
            return None
        first = points[0]
        n = Node(first)
        n.med = first[0]
        del points[0]
        if points:
            med = median(map(lambda it: it[0], points))
            n.med = med
            Pl = list(filter(lambda it: it[0] <= med, points))
            if Pl:
                n.left = self._create(Pl)
            Pr = list(filter(lambda it: it[0] > med, points))
            if Pr:
                n.right = self._create(Pr)
        return n

    def findSplitNode(self, x: Tuple[float, float]) -> Tuple[Node, list]:
        x_left, x_right = x
        n, path = self.root, []
        while n is not None and (x_left > n.med or x_right < n.med):
            p = n.p
            path.append(p)
            if x_right < n.med:
                n = n.left
            else:
                n = n.right
        return n, path

    def queryPrioritySubtree(self, n: Node, y: float) -> list:
        res = []
        if n is not None and n.p.y >= y:
            res.append(n.p)
            res = res + self.queryPrioritySubtree(n.left, y)
            res = res + self.queryPrioritySubtree(n.right, y)
        return res

ovo ti je vec implentirano


AntonioB25

Grga
Mislim da ima nešto slično u onim njihovim kodovima: PriorityTree


WP_Deva

def query(self,qx2,qy1,qy2):
        rv=[]
        nsplit,rn=self._findSplittingNode(qy1,qy2)
        for n in rn:
            if n.p[0]<=qx2 and isInRange(qy1,n.p[1],qy2): rv.append(n.p)
        if nsplit is None: return rv
        if nsplit.leftChild is None and nsplit.rightChild is None:
            rv=rv+self._queryPrioritySubtree(nsplit,qx2)
        else:
            if nsplit.p[0]<=qx2 and isInRange(qy1,nsplit.p[1],qy2): rv.append(nsplit.p)
            n=nsplit.leftChild
            while n is not None and n.p[0]<=qx2:
               if isInRange(qy1,n.p[1],qy2): rv.append(n.p)
               if isInRange(qy1,n.y,qy2):
                   rv=rv+self._queryPrioritySubtree(n.rightChild,qx2)
                   n=n.leftChild
               else: n=n.rightChild
            n=nsplit.rightChild
            while n is not None and n.p[0]<=qx2:
               if isInRange(qy1,n.p[1],qy2): rv.append(n.p)
               if isInRange(qy1,n.y,qy2):
                   rv=rv+self._queryPrioritySubtree(n.leftChild,qx2)
                   n=n.rightChild
               else: n=n.leftChild
        return rv

oni u svojim primjerima daju implementirano za x, a nama treba y


Sulejman

IdeGas jel netko zna kaj bi znacile ove skracenice rv, rn


WickyWinslow


Greška u zadatku sa stablom prioriteta.


Heklijo

Sulejman
Koliko sam ja skuzio, rv je lista točaka koje su u prozoru, rn predstavlja trenutni čvor


123

Ako koja dobra duša u 16:00 može napisat je li došao isti zadatak, zahvaljujem


Asdf


zadatak u 4 , mislim da je isti


MrPeanutButter

Asdf isti zad dns u 8:00


steker


sta bi ovo bilo lol


[obrisani korisnik]

steker provjeravaš jel objekt node manji od drugog objekta node, a pretpostavljam da želiš njihove vrijednosti


IdemNecu

steker Kolega niste pozali na Node .p koji vam daje point nego racunate s Nodeovima


Erpeg

steker meni je to isto bilo iako sam pozivao .p.x il kak vec ide. ugl nisam odgonetnuo zasto


dinosaur1


Kikyy99

dinosaur1 Kako se rjesavaju ovi zadaci na blicu sa simpleksima? Msm ima 10 min za rjesavanje toga, jel to ko ono ubaciti u online simplex kalkulator zadatak ili ima neka fora? Skripta i preze su kriminalne


steker

Erpeg msm da se trebala stvorit nova tocka od toga, jer ga sjebe ovaj string, znam da je padalo na jos nekim testovima iako je tocan bio ispis samo je jedno bilo tocka drugo string (ili tako nesto ugl ne sjecam se)


« Prethodna stranica Sljedeća stranica »