September 2017 Update
This commit is contained in:
parent
bba7bfd280
commit
ba8067c3b7
14570 changed files with 153136 additions and 63871 deletions
|
|
@ -0,0 +1,39 @@
|
|||
# syntax: GAWK -f DINESMANS_MULTIPLE-DWELLING_PROBLEM.AWK
|
||||
BEGIN {
|
||||
for (Baker=1; Baker<=5; Baker++) {
|
||||
for (Cooper=1; Cooper<=5; Cooper++) {
|
||||
for (Fletcher=1; Fletcher<=5; Fletcher++) {
|
||||
for (Miller=1; Miller<=5; Miller++) {
|
||||
for (Smith=1; Smith<=5; Smith++) {
|
||||
if (rules() ~ /^1+$/) {
|
||||
printf("%d Baker\n",Baker)
|
||||
printf("%d Cooper\n",Cooper)
|
||||
printf("%d Fletcher\n",Fletcher)
|
||||
printf("%d Miller\n",Miller)
|
||||
printf("%d Smith\n",Smith)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
exit(0)
|
||||
}
|
||||
function rules( stmt1,stmt2,stmt3,stmt4,stmt5,stmt6,stmt7) {
|
||||
# The following problem statements may be changed:
|
||||
#
|
||||
# Baker, Cooper, Fletcher, Miller, and Smith live on different floors of an apartment house
|
||||
# that contains only five floors numbered 1 (ground) to 5 (top)
|
||||
stmt1 = Baker!=Cooper && Baker!=Fletcher && Baker!=Miller && Baker!=Smith &&
|
||||
Cooper!=Fletcher && Cooper!=Miller && Cooper!=Smith &&
|
||||
Fletcher!=Miller && Fletcher!=Smith &&
|
||||
Miller!=Smith
|
||||
stmt2 = Baker != 5 # Baker does not live on the top floor
|
||||
stmt3 = Cooper != 1 # Cooper does not live on the bottom floor
|
||||
stmt4 = Fletcher != 5 && Fletcher != 1 # Fletcher does not live on either the top or the bottom floor
|
||||
stmt5 = Miller > Cooper # Miller lives on a higher floor than does Cooper
|
||||
stmt6 = abs(Smith-Fletcher) != 1 # Smith does not live on a floor adjacent to Fletcher's
|
||||
stmt7 = abs(Fletcher-Cooper) != 1 # Fletcher does not live on a floor adjacent to Cooper's
|
||||
return(stmt1 stmt2 stmt3 stmt4 stmt5 stmt6 stmt7)
|
||||
}
|
||||
function abs(x) { if (x >= 0) { return x } else { return -x } }
|
||||
Loading…
Add table
Add a link
Reference in a new issue