private static void Poly1() { Random rnd = new Random(0); for( int i = 0; i < 10000000; ++i ) { double a = rnd.Next( -10, 10 ); double b = rnd.Next( -10, 10 ) ; double c = rnd.Next( -10, 10 ) ; a=2;b=8;c=8; Solver s = new Solver( -1000000, 1000000 ); FltVar x = new FltVar( s, "x" ); FltVarExpr exp = a*x*x+ b*x; s.Add( exp ); s.Add( exp == -c ); s.PrintConstraints(); s.PrintVariables(); Console.Out.WriteLine( "{0}.x^2 + {1}.x + {2} = 0", a, b, c ); s.Solve( new FltGenerate( s, new FltVar[] { x } ) ); Console.Out.WriteLine( x.ToString(true) ); while( s.Next() ) { Console.Out.WriteLine( x.ToString(true) ); } } }
static void Mul2() { IntDomain v = new IntDomain(); for( int idx = 0; idx < 100000; ++idx ) { Solver s = new Solver( -1000, 1000 ); IntVar a = new IntVar( s, IntDomain.Random( -100, 100, 1 ), "a" ); IntVar b = new IntVar( s, IntDomain.Random( -100, 100, 1 ), "b" ); IntVar c = new IntVar( s, IntDomain.Random( -100, 100, 1 ), "c" ); IntVar d = new IntVar( s, IntDomain.Random( -100, 100, 1 ), "d" ); IntVarList l = new IntVarList( s, new IntVar[] { a, b, c, d } ); //p.Add( a + b + c + d ); s.Add( l.Sum() ); s.Propagate(); s.PrintVariables(); s.PrintConstraints(); } }