Skip to content

第 1 课 课堂练习

修复错误程序

c
pragma circom 2.1.4;

template Main () {
    signal input x1;
    signal input x2;
    signal input x3;
    signal input x4;

    signal y1;
    signal y2;

    signal output out;

    // f(x) = (x1 + x2) / x3 - x4
    y1 <== x1 + x2;
    y2 <== y1 / x3; 
    out <== y2 - x4;
}

component main = Main();

/* INPUT = {
    "x1": "4",
    "x2": "6",
    "x3": "2",
    "x4": "1"
} */
pragma circom 2.1.4;

template Main () {
    signal input x1;
    signal input x2;
    signal input x3;
    signal input x4;

    signal y1;
    signal y2;

    signal output out;

    // f(x) = (x1 + x2) / x3 - x4
    y1 <== x1 + x2;
    y2 <== y1 / x3; 
    out <== y2 - x4;
}

component main = Main();

/* INPUT = {
    "x1": "4",
    "x2": "6",
    "x3": "2",
    "x4": "1"
} */
error[T3001]: Non quadratic constraints are not allowed!
   ┌─ "main.circom":16:5

16 │     y2 <== y1 / x3; 
   │     ^^^^^^^^^^^^^^ found here  

   = call trace:
     ->Main
error[T3001]: Non quadratic constraints are not allowed!
   ┌─ "main.circom":16:5

16 │     y2 <== y1 / x3; 
   │     ^^^^^^^^^^^^^^ found here  

   = call trace:
     ->Main