** Q1**

Our group have one question regarding part 1 in A3.
For the first part of the question,
it is clear that variable T is 1, since the result of multiplying STRAW with T
is STRAW. Can we just assign the variable as 1? Or do we need to use backtracking
in order to find the correct value for this variable T?

** A1**

I said in class that you cannot embed your reasoning
into a solution. In a real application, you may inadvertently make
an error by trusting your ability to cut corners. Follow exactly
the techniques presented in class. Let your program discover everything.

** Q2**

In Q1 of Assignment 3 it asks us to product cputime. How do we find
cpu time? Is it Finish Time - Start Time? What is the function call?

** A2**

Well, just open any Prolog (with GUI or otherwise) and read

?- help(cputime).Also, try a query

?- statistics(session_time,X).See what happens. Wait for 5 seconds (but do not close your session with Prolog), and try it again. See what happens. For details, read

?- help(statistics/2).and pay attention to paragraph where the argument "session_time" is explained. Also, you can measure how much time your program takes using this query:

? statistics(session_time,Start), solve(List), statistics(session_time,End), T is End - Start.

** Q4**
This is a question about part 3
Are we creating rules to solve ken ken problems in general, or this
particular ken ken problem.

** Q5**
In Part 1, suppose that I have a constraint on the variable R
coming from mutiplication, e.g.,

** Q6**
For the scheduling of lunches are we allowed to embed the fact that all
the classes will be restricted to Monday, Wednesday and Friday, and that
those three days are guaranteed to have a class, or should the cool have
to determine which days need lunches?

** Q7**
I just had a quick question concerning Question 1 in Assignment 3.
In the cryptarithmetic problem we need to solve, we are multiplying
STRAW by TO, and

You have to formulate constraints as we did in class. In particular for this multiplication task, we have that

** Q8**

I have a question regarding question 1 from assignment 3 (the crypt-arithmetic
puzzle).
In the part of the problem where we are checking if the values for the
variables satisfy the addition constraints (after we have successfully found
values that satisfy the multiplication constraints), is there an implicit
constraint for the value of S+C1000, (where C1000 is the carry-digit from the
addition of T+W) to be a single digit?

** A8**

You just have to formulate all constraints given to you explicitly.
In particular, you need *C is (S + Carry1000)*, and the other remaining
constraints. Pay attention to the fact that distinct letters stand for distinct
digits. You can add *C < 10*, if you really want, but it is not
required to find a correct siolution.

** Q9**

For assignment 3, Part 3, i made an auxiliary predicate
called *myDivide* to check if something a value is equal to
a number divided by another number. Using the **/** sign
for this purpose seems to throw me an error, whereas using the
*div()* built-in predicate works.
In the assignment it says we have to reimplement
the predicates, does this apply for standard
prolog library such as the *div()* ?
Also, the **/** gives me a solution of no. This is
because sometimes the numbers will give me
decimal values, am i allowed double slashes **//** ?

** A9**

You cannot use any of the library predicates in this assignment
(except of those discussed in class).
The usual division operator **"/"** works for me well.
Perhaps, you use it incorrectly and this is why you get
an error message. Remember in Prolog you use **is** or **=:=**
when you work with arithmetical expressions.
Of course, you can use any arithmetical operators including **//**
Make sure the RHS of your rule is implemented
correctly and for all values of arguments your helping predicate
*myDivide* does the correct computation.

** Q10**

our program displays the same result multiple times if you press “;” or
“more" because (...skip...), is this okay?
or do you want it to just display the answer once.

** A10**

Repetitions of correct answers are OK. This applies to all
assignments in cps721. I already said this about the 1st assignment.
But your program should never print a solution that violates at least
one constraint. If you are not sure, then check each solution manually.

** Q11**

** A11**