User Tools

Site Tools


predmeti:ppj:clp_fd

CLP(FD)

  1. V SWI-Prolog je potrebno naložiti knjižnico z use_module(library(clpfd))
    • v CodeQ je knjižnica že naložena
  2. Za CLP(FD) omejitve uporabljamo posebne operatorje
    • X #< Y, X #> Y, X #=< Y, X #>= Y, X #= Y, X #\= Y
    • X in -5..5
      • X in 2..4 \/ 6..8
    • [X, Y, Z] ins -5..5
  3. Predikat all_different([X, Y, Z]) postavi omejitev, da so X, Y in Z paroma različni
  4. Spremenljivke z omejitvami lahko instanciramo
    • indomain(X)
    • labeling([], [X, Y, Z])
      • prazen seznam kot prvi argument uporabi privzete nastavitve
  5. Naloge
    • puzzle_beth/1
      • Beth pravi: „Čez dve leti bom stara dvakrat toliko, kot sem bila pred petimi leti.“ Koliko je stara?
    • puzzle_abc/3
      • A je dve leti starejši od B-ja, ki je dvakrat starejši od C-ja. Koliko so stari A, B in C, če je seštevek vseh starosti 27?
    • puzzle_momson/2
      • Vsota starosti matere in njenega sina je 66. Starost matere v letih je xy, starost sina pa yx. Koliko sta stara?
    • puzzle_ratio/2
      • Razmerje starosti A-ja in B-ja je 5:4. Čez tri leta bo razmerje 11:9. Koliko sta stara?
    • magic/1
      • generira magične kvadrate velikosti 3×3
    • gcd/3
      • poišče največji skupni delitelj dveh števil
    • tobase/3
      • pretvarja med različnimi številskimi sistemi
predmeti/ppj/clp_fd.txt · Last modified: 2016/05/24 10:34 by timotej