Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,101 @@
|
|||
on twelveStatements()
|
||||
set statements to " 1. This is a numbered list of twelve statements.
|
||||
2. Exactly 3 of the last 6 statements are true.
|
||||
3. Exactly 2 of the even-numbered statements are true.
|
||||
4. If statement 5 is true, then statements 6 and 7 are both true.
|
||||
5. The 3 preceding statements are all false.
|
||||
6. Exactly 4 of the odd-numbered statements are true.
|
||||
7. Either statement 2 or 3 is true, but not both.
|
||||
8. If statement 7 is true, then 5 and 6 are both true.
|
||||
9. Exactly 3 of the first 6 statements are true.
|
||||
10. The next two statements are both true.
|
||||
11. Exactly 1 of statements 7, 8 and 9 are true.
|
||||
12. Exactly 4 of the preceding statements are true."
|
||||
|
||||
script o
|
||||
property posits : {}
|
||||
property upshots : missing value
|
||||
|
||||
on countTrues(indexList)
|
||||
set sum to 0
|
||||
repeat with i in indexList
|
||||
if (my posits's item i) then set sum to sum + 1
|
||||
end repeat
|
||||
return sum
|
||||
end countTrues
|
||||
end script
|
||||
-- While setting up, test statement 1, whose truth isn't about the others' truths.
|
||||
set statements to statements's paragraphs
|
||||
set nStatements to (count statements)
|
||||
set statement1Truth to (nStatements = 12)
|
||||
repeat with stmt from 1 to nStatements
|
||||
set end of o's o's posits to false
|
||||
tell (statements's item stmt's words) to set statement1Truth to ¬
|
||||
((statement1Truth) and ((count) > 1) and (beginning = stmt as text))
|
||||
end repeat
|
||||
|
||||
set output to {}
|
||||
set firstIteration to true
|
||||
repeat (2 ^ nStatements) times
|
||||
-- Postulate answer:
|
||||
if (firstIteration) then
|
||||
set firstIteration to false
|
||||
else -- "Increment" the 'posits' boolean array binarily.
|
||||
repeat with stmt from 1 to nStatements
|
||||
set o's posits's item stmt to (not (o's posits's item stmt))
|
||||
if (result) then exit repeat -- No carry.
|
||||
end repeat
|
||||
end if
|
||||
|
||||
-- Test consistency:
|
||||
tell o's posits to set o's upshots to {statement1Truth, ¬
|
||||
(o's countTrues({7, 8, 9, 10, 11, 12}) = 3), ¬
|
||||
(o's countTrues({2, 4, 6, 8, 10, 12}) = 2), ¬
|
||||
((not (item 5)) or ((item 6) and (item 7))), ¬
|
||||
(not ((item 2) or (item 3) or (item 4))), ¬
|
||||
(o's countTrues({1, 3, 5, 7, 9, 11}) = 4), ¬
|
||||
((item 2) ≠ (item 3)), ¬
|
||||
((not (item 7)) or ((item 5) and (item 6))), ¬
|
||||
(o's countTrues({1, 2, 3, 4, 5, 6}) = 3), ¬
|
||||
((item 11) and (item 12)), ¬
|
||||
(o's countTrues({7, 8, 9}) = 1), ¬
|
||||
(o's countTrues({1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}) = 4)}
|
||||
|
||||
set nMatches to 0
|
||||
repeat with stmt from 1 to nStatements
|
||||
if ((o's posits's item stmt) = (o's upshots's item stmt)) then set nMatches to nMatches + 1
|
||||
end repeat
|
||||
if (nMatches > nStatements - 2) then
|
||||
set statementsPositedTrue to {}
|
||||
repeat with stmt from 1 to nStatements
|
||||
set thisPosit to o's posits's item stmt
|
||||
if (thisPosit) then set end of statementsPositedTrue to stmt
|
||||
if ((thisPosit) ≠ (o's upshots's item stmt)) then set failure to stmt
|
||||
end repeat
|
||||
set statementsPositedTrue's last item to "and " & statementsPositedTrue's end
|
||||
if ((count statementsPositedTrue) > 2) then
|
||||
set statementsPositedTrue to join(statementsPositedTrue, ", ")
|
||||
else
|
||||
set statementsPositedTrue to join(statementsPositedTrue, space)
|
||||
end if
|
||||
if (nMatches = nStatements) then
|
||||
set output's end to "SOLUTION: statements " & statementsPositedTrue & " are true."
|
||||
else
|
||||
set output's end to "Near miss when statements " & statementsPositedTrue & ¬
|
||||
" are posited true: posit for statement " & failure & " fails."
|
||||
end if
|
||||
end if
|
||||
end repeat
|
||||
|
||||
return join(output, linefeed)
|
||||
end twelveStatements
|
||||
|
||||
on join(lst, delim)
|
||||
set astid to AppleScript's text item delimiters
|
||||
set AppleScript's text item delimiters to delim
|
||||
set txt to lst as text
|
||||
set AppleScript's text item delimiters to astid
|
||||
return txt
|
||||
end join
|
||||
|
||||
twelveStatements()
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
"Near miss when statements 1 and 4 are posited true: posit for statement 8 fails.
|
||||
Near miss when statements 1 and 5 are posited true: posit for statement 8 fails.
|
||||
Near miss when statements 1, 5, and 8 are posited true: posit for statement 11 fails.
|
||||
Near miss when statements 1, 3, 4, 6, 7, and 9 are posited true: posit for statement 9 fails.
|
||||
Near miss when statements 1, 3, 4, 8, and 9 are posited true: posit for statement 7 fails.
|
||||
Near miss when statements 1, 4, 6, 8, and 9 are posited true: posit for statement 6 fails.
|
||||
Near miss when statements 1, 2, 4, 7, 8, and 9 are posited true: posit for statement 8 fails.
|
||||
Near miss when statements 1, 2, 4, 7, 9, and 10 are posited true: posit for statement 10 fails.
|
||||
SOLUTION: statements 1, 3, 4, 6, 7, and 11 are true.
|
||||
Near miss when statements 5, 8, and 11 are posited true: posit for statement 1 fails.
|
||||
Near miss when statements 1, 5, 8, and 11 are posited true: posit for statement 12 fails.
|
||||
Near miss when statements 1, 5, 6, 9, and 11 are posited true: posit for statement 8 fails.
|
||||
Near miss when statements 1, 2, 4, 7, 9, and 12 are posited true: posit for statement 12 fails.
|
||||
Near miss when statements 4, 8, 10, 11, and 12 are posited true: posit for statement 1 fails.
|
||||
Near miss when statements 1, 4, 8, 10, 11, and 12 are posited true: posit for statement 12 fails.
|
||||
Near miss when statements 5, 8, 10, 11, and 12 are posited true: posit for statement 1 fails.
|
||||
Near miss when statements 1, 5, 8, 10, 11, and 12 are posited true: posit for statement 12 fails."
|
||||
Loading…
Add table
Add a link
Reference in a new issue