COMP9021, Trimester 1, 2019

Assignment 1
COMP9021, Trimester 1, 2019
1. General matters
1.1. Aim. The purpose of the assignment is to:
let you design a solution to a problem that requires to parse and analyse text and perform logical
computations;
let you implement this solution in the form of a short Python program;
practice reading from a file and making use of, in particular, tests, repetitions, lists, sets, strings, Boolean
operators.
1.2. Submission. Your program will be stored in a file named knights_and_knaves.py. After you have
developed and tested your program, upload it using Ed (unless you worked directly in Ed). Assignments can
be submitted more than once; the last version is marked. Your assignment is due by March 31, 11:59pm.
1.3. Assessment. The assignment is worth 10 marks. It is going to be tested against a number of input files.
For each test, the automarking script will let your program run for 30 seconds.
Late assignments will be penalised: the mark for a late submission will be the minimum of the awarded mark
and 10 minus the number of full and partial days that have elapsed from the due date.
The outputs of your programs should be exactly as indicated.
1.4. Reminder on plagiarism policy. You are permitted, indeed encouraged, to discuss ways to solve the
assignment with other people. Such discussions must be in terms of algorithms, not code. But you must
implement the solution on your own. Submissions are routinely scanned for similarities that occur when students
copy and modify other people’s work, or work very closely together on a single implementation. Severe penalties
apply.
2. General description
Raymond Smullyan has designed many puzzles involving Knights and Knaves. Knights always tell the truth,
whereas Knaves always lie. We refer to Knights and Knaves as Sirs. A puzzle, which is a set of English sentences,
involves a finite number of Sirs. Solving the puzzle means:
determining the names of all Sirs involved in the puzzle;
determining solutions to the puzzle, where a solution qualifies each Sir as either a Knight or a Knave.
Some puzzles have no solution, others have a unique solution, and others have at least 2 solutions. The following
is an example of a puzzle with a unique solution.
One evening as you are out for a stroll, you walk by a doorway labeled no normals
allowed. Some people are talking inside. Curious, you listen, and you hear Sir Paul
who says: "all of us are Knaves." "Exactly one of us is a Knight," replies Sir Jenny.
As for Sir John, who is also inside, he just keeps quiet. Who is a Knight, and who
is a Knave?
The Sirs involved in this puzzle are Sir Jenny, Sir John, and Sir Paul. The unique solution is given by Sir Jenny
being a Knight, Sir John being a Knave, and Sir Paul being a Knave.
1
2
3. Detailed description
3.1. Syntax of puzzles. A sentence starts with a capital letter and ends in a full stop, an exclamation mark,
or a question mark, possibly followed by closing double quotes. Sir, Sirs, Sir names, Knight and Knave always
start with a capital letter, and no other word inside a sentence is capitalised. A sentence in a puzzle contains
at most one part enclosed between double quotes. When a sentence contains one part enclosed between double
quotes, the part outside the double quotes contains a single occurrence of the form Sir Sir_Name, and what
occurs between the double quotes is something said by Sir Sir_Name. A sentence that contains no part enclosed
between double quotes might refer to a number of Sirs, always in the form Sir Sir_Name, or Sirs Sir_Name_1
and Sir_Name_2, or Sirs Sir_Name_1, Sir_Name_2, …and Sir_Name_n, where n ≥ 3, and Sir_Name_1, …,
Sir_Name_n are pairwise distinct.
What is between double quotes is a sentence in one of the following forms, ending in either a comma, a full
stop, an exclamation mark, or a question mark:
At/at least one of Conjunction_of_Sirs/us is a Knight/Knave
At/at most one of Conjunction_of_Sirs/us is a Knight/Knave
Exactly/exactly one of Conjunction_of_Sirs/us is a Knight/Knave
All/all of us are Knights/Knaves
I am a Knight/Knave
Sir Sir_Name is a Knight/Knave
Disjunction_of_Sirs is a Knight/Knave
Conjunction_of_Sirs are Knights/Knaves
where:
Disjunction_of_Sirs is in one of the following forms:
– Sir_1 or Sir_2
– Sir_1, Sir_2, … or Sir_n (n ≥ 3)
Conjunction_of_Sirs is in one of the following forms:
– Sir_1 and Sir_2
– Sir_1, Sir_2, … and Sir_n (n ≥ 3)
Sir_1, …, Sir_n are pairwise distinct expressions of the form Sir Sir_Name or I.
3.2. Input and output of programs. Your program will prompt the user for a text file, assumed to be stored
in the working directory, that stores the sentences that make up a puzzle. No assumption should be made on
the number of English sentences provided as input, nor on the length of a sentence, nor on the length of a Sir
name, nor on the number of Sirs involved in the puzzle.
Your program should:
output the Sirs involved in the puzzle in lexicographic order;
output whether or not there is a solution, and in case there is one, whether the solution is unique;
output the solution in case a unique solution exists, with all Sirs being qualified as either Knight or
Knave in alphabetical order.
3
3.3. Sample outputs. Here are a few tests together with the expected outputs. The outputs of your program
should be exactly in accordance with the following outputs. Outputs of your program will be matched against
expected outputs line for line.
$ cat test_1.txt
I have just seen Sirs Sanjay and Eleonore!
"I am a Knave," whispered Sir Eleonore.
Who is a Knight and who is a Knave?
$ python3 knights_and_knaves.py
Which text file do you want to use for the puzzle? test_1.txt
The Sirs are: Eleonore Sanjay
There is no solution.
$ cat test_2.txt
I have just met Sirs Frank, Paul and Nina.
Sir Nina said: "I am a Knight," but I am not sure
if that is true. What do you think?
$ python3 knights_and_knaves.py
Which text file do you want to use for the puzzle? test_2.txt
The Sirs are: Frank Nina Paul
There are 8 solutions.
$ cat test_3.txt
Yesterday, I visited Sirs Andrew and Nancy. I asked Sir Andrew
who he was, and he answered impatiently: "Sir Nancy and I
are Knaves!" Then I met Sir Bill who introduced me to his wife
and told me: "at least one of Sir Hilary
and I is a Knave." Should I trust them?
$ python3 knights_and_knaves.py
Which text file do you want to use for the puzzle? test_3.txt
The Sirs are: Andrew Bill Hilary Nancy
There is a unique solution:
Sir Andrew is a Knave.
Sir Bill is a Knight.
Sir Hilary is a Knave.
Sir Nancy is a Knight.

因为专业,所以值得信赖。如有需要,请加QQ:99515681 或邮箱:99515681@qq.com

微信:codinghelp

原文地址:https://www.cnblogs.com/helpyourjava/p/10595477.html

时间: 2024-10-07 16:33:24

COMP9021, Trimester 1, 2019的相关文章

COMP9021,

Assignment 2COMP9021, Trimester 2, 20191. General matter1.1. Aims. The purpose of the assignment is to: design and implement an interface based on the desired behaviour of an application program; practice the use of Python syntax; develop problem sol

COMP9021 PRINCIPLES OF PROGRAMMING

QUIZ 7COMP9021 PRINCIPLES OF PROGRAMMING$ python3 quiz_7.pyEnter four integers: 0 2 2 8Here is the grid that has been generated:1 1 0 1 1 1 1 11 0 0 1 0 0 1 0Enter four integers: 3 0 4 1Will compute the number of good paths from (3, 0) to (4, 1)...Th

MCD4140 Assignment

MCD4140 Assignment 1 of 8MCD 4140: Computing for EngineersAssignmentTrimester 1, 2019Status: IndividualHurdle: There is no hurdle on assignmentWeighting: 10%Word limit: No limitDue date: By 12.00pm on Monday 6/05/2019 via Moodle (Week 10).INSTRUCTION

INFO6002: Database Management 2

School of Electrical Engineering and ComputingINFO6002: Database Management 2Trimester 2, 2019 - CallaghanAssignment 3 – Data Marts and Business IntelligenceDue: 10:00 am, Wednesday 7th August 2019WORTH 20% of final course mark.This is an INDIVIDUAL

SD6503 Testing and Secure Coding

Final Project_ SD6503 Testing and Secure Coding_T2_2019 Page 1 of 4BACHELOR OF INFORMATION TECHNOLOGYSD6503 Testing and Secure CodingFinal ProjectTrimester 2, 2019Secure Web Project Development and Testing — Group ProjectDue date and timeDue: Tuesday

高通CEO莫伦科夫:5G手机从2019年开始将成主流(转)

据路透社9月15日报道,高通公司首席执行官预测,首款符合下一代移动标准的5G手机将于2019年在全球主要市场上市,这比预测时间要早一年. 作为世界顶级智能手机芯片制造商,高通公司首席执行官史蒂文?莫伦科夫(Steven Mollenkopf)在接受采访时表示,消费者和商务需求不断增长,迫使5G手机加速普及,将原来的2020年提前至2019年,以升级新的网络和设备. 5G商业化对于诸如华为.诺基亚和爱立信等网络设备制造商以及三星电子和苹果等手机制造商的新功能和设备升级需求来说至关重要.升级到新的网

ural 2019 Pair: normal and paranormal

2019. Pair: normal and paranormal Time limit: 1.0 secondMemory limit: 64 MB If you find yourself in Nevada at an abandoned nuclear range during Halloween time, you’ll become a witness of an unusual show. Here Ghostbusters hold annual tests for new ve

关于我遇到的“LNK 2019无法解析的外部符号”的链接错误

昨天在调试程序的时候出现了"LNK 2019无法解析的外部符号"的问题(VS2008),依照网上说的方法都没有解决这个问题,最后在项目文件里发现有两个同名的可是不在同一个目录下的cpp文件,而产生LNK错误的cpp文件里有对这个重名文件的引用,结果导致了当中一个cpp文件产生的目标文件(obj)覆盖了真正须要的cpp产生的OBJ文件,导致链接的时候找不到指定的符号而出现了链接错误. 以下给个图说明一下我遇到的情况吧: 在项目中.同一时候包括了目录1和目录2中的全部cpp文件,而ref.

微软将不推出二代HoloLens,直接在2019年推出第三代HoloLens

原文标题:微软将不推出二代HoloLens,直接在2019年推出第三代HoloLens (591ARVR 2017年2月20日消息)大约2年前,微软首次向世界展示了混合现实头显HoloLens,而他们也迅速占据各大新闻的头条,人们纷纷讨论着信息处理的未来.自那以后,微软已经把原型设备转变成可供购买的产品(虽然价格不菲). 上周,我们从数个信息源获悉微软调整了HoloLens的发展路线图,取消了第二个迭代的开发.考虑到微软对该设备的投入,以及许多人都坚信这是信息处理的未来,微软的这一举动让人十分不