Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
25 lines
775 B
MiniZinc
25 lines
775 B
MiniZinc
% Taken from https://www.minizinc.org/doc-2.7.3/en/modelling.html
|
|
% variables
|
|
var float: R; % quarterly repayment
|
|
var float: P; % principal initially borrowed
|
|
var 0.0 .. 10.0: I; % interest rate (per quarter)
|
|
|
|
% intermediate variables
|
|
var float: B1; % balance after one quarter
|
|
var float: B2; % balance after two quarters
|
|
var float: B3; % balance after three quarters
|
|
var float: B4; % balance owing at end
|
|
|
|
constraint B1 = P * (1.0 + I) - R;
|
|
constraint B2 = B1 * (1.0 + I) - R;
|
|
constraint B3 = B2 * (1.0 + I) - R;
|
|
constraint B4 = B3 * (1.0 + I) - R;
|
|
|
|
solve satisfy;
|
|
|
|
output [
|
|
"Borrowing ", show_float(0, 2, P), " at ", show(I*100.0),
|
|
"% interest, and repaying ", show_float(0, 2, R),
|
|
"\nper quarter for 1 year leaves ", show_float(0, 2, B4), " owing\n"
|
|
];
|