代写COMP9021作业、代做Python编程语言作业、代写Python实验作业、代做program留学生作业

日期:2019-03-23 11:16

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.

大学生python作业代做_代写COMP9021作业、代做Python编程语言作业、代写Python实验作业、代做program留学生作业...相关推荐

  1. 代写python期末作业价格_代写program留学生作业、代做Python程序语言作业、代写Python课程设计作业...

    代写program留学生作业.代做Python程序语言作业.代写Python课程设计作业 日期:2019-11-29 12:55 Completing the Final Project - Pyth ...

  2. 代写python期末作业价格_代做program留学生作业、代写Python语言作业、代做algorithm课程作业、代写Python程序设计作业...

    代做program留学生作业.代写Python语言作业.代做algorithm课程作业.代写Python程序设计作业 日期:2020-01-09 10:13 Coursework Brief: ASS ...

  3. python 阻止锁屏_想要自己的手机锁屏更加安全吗?python带你打造个性的锁屏控件...

    原标题:想要自己的手机锁屏更加安全吗?python带你打造个性的锁屏控件 Python是一种面向对象.直译式电脑编程语言,也是一种功能强大的通用型语言,已经具有近二十年的发展历史,成熟且稳定.它包含了 ...

  4. python 赚钱 知乎_没想到吧!Google 排名第一的编程语言,为什么会这么火?

    原标题:没想到吧!Google 排名第一的编程语言,为什么会这么火? 没想到吧,Python 又拿第一了! 在 Google 公布的编程语言流行指数中,Python 依旧是全球范围内最受欢迎的技术语言 ...

  5. python图片转文字_【收藏】图片转成文字的方法总结,python批量图片转文字信息参考源码...

    在日常办公或者学习中,往往存在这样一个工作场景,比如,"老王,我这里有一张图片,你把里面的文字信息给我整理出来",都2021年了,你真的还在手敲图片文字信息么?那么还不赶紧收藏这篇 ...

  6. python绘制黑白棋盘_生成黑白棋盘标定图和单目相机标定(python+opencv实现)

    学习记录. 事实上很早就接触过视觉定位这东西,但是到现在才返回头学习一下相机的标定,真是可耻啊!我把想法和过程记录一下. 相机成像 相机的成像原理--小孔成像 然而,在实际由于设计工艺问题.相机安装环 ...

  7. java与python多态的区别_如果未调用父构造函数(与Java不同),多态性在Python中如何工作? - java...

    因此,父类构造函数是在Java中调用的,而在Python中则不是.如果这意味着未创建父对象,那么如何在Python中成功调用def function-这是怎么回事? Python代码 class Pa ...

  8. python需要的基础_推荐收藏!小白不要怕!一周学全Python面试基础(2)

    Python是一个广泛的领域,因此有必要保持最新状态.通过列出30个python面试问题和答案,本文涵盖在Python面试中经常问到的问题.如果您是该行业的新手,本基础篇将极大地帮助您.我们衷心希望这 ...

  9. python 与或非_“2020”假看完本文若不能让你学通“Python”,我将永远退出IT界!...

    0基础小白怎么学Python? 今天给大家分享一些学习Python的基本概念图,入门书籍.视频教程以及学习路上最有效的方法.Python基本概念最全图1.Python 解释器: 2.Python数据结 ...

  10. python面板数据分析代码_对于大面板数据,回归就绪格式的Excel到Python?

    试图从Excel中获取一些大面板数据到python中,所以我可以做一些GMM /横截面面板数据回归分析(想想sci-kit软件包).我把我的数据从excel移到了Python,但是回归分析的格式不正确 ...

最新文章

  1. Concurrency Runtime in Visual C++ 2010
  2. Nandflash 驱动移植
  3. BeautifulSoup库使用
  4. Redis Cluster深入与实践(续)
  5. Shell命令-磁盘与文件系统之e2fsck、mkswap
  6. 万物皆可Graph | 当信息检索遇上图神经网络
  7. NASM汇编语言与计算机系统04-实模式-屏幕显示不定长度的字符串(cmp/je)
  8. bzoj 4127: Abs(树链剖分+线段树)
  9. .Net框架搭建之辅助模版代码生成工具
  10. Apk资源文件混淆[微信开源方法]
  11. Asis CTF 2016 b00ks
  12. java midi版本_java-为特定MIDI设备开发软件
  13. 在外包公司工作是什么样的体验?
  14. java中的常见异常1 -- 新手上路,减速慢行
  15. 第三天---随机小方块
  16. 李建忠设计模式——策略模式Strategy
  17. iOS通过dSYM文件分析crash
  18. 老调重弹之ffmpeg解码音频
  19. 月入10万的人,他们都掌握哪些秘密?
  20. 学生老师的家教服务平台小程序制作

热门文章

  1. 制定可用性测试计划(1)
  2. 计算机连接网线后无法上网,网线插电脑能上网插路由器不能上网了怎么办?
  3. Word排版之论文的诞生(目录篇)
  4. ZT:【搞笑】某大学生毕业自我鉴定
  5. hackRF--初步实战(ubuntu环境)
  6. 集合论的创始人康托尔(G.Cantor)的故事
  7. 《昭君出塞》首映礼纪实——《心周刊》报道
  8. 链接mysql 504_phpMyAdmin错误代码:504 MySQL查询
  9. 个人所得税java程序怎么编写_个人所得税Java实现代码
  10. 2021-11-01 讲题题解