Toggle Menu

计算机科学COMP1100练习问题解决方案辅导

发布时间: 2023-04-22 19:33:57
文章来源: 考而思
摘要:
完善自己的AI并为考试做好准备时,我们组成了一小组问题,这些问题将在Haskell的所有领域进行测试。字谜是与另一个单词或短语具有相同字母的单词或短语(“ nag ram”是“ anagram”的相似词):七巧板是使用字母表中每个字母的句子

      当我们接近学期末时,您将在Haskell达到精通。只是想想,仅仅2个月前,您才被介绍到命令行和.hs文件中,而现在您正在构建AI以在排行榜上竞争!

计算机科学COMP1100练习问题解决方案辅导

  但是,像所有技能一样,练习总是会有所帮助的。因此,当您完善自己的AI并为考试做好准备时,我们组成了一小组问题,这些问题将在Haskell的所有领域进行测试。试试看,看看他们怎么走!

  问题1:字形图

  让我们使用列表和递归来确定给定的字符串是否是全景图。字谜是与另一个单词或短语具有相同字母的单词或短语(“ nag ram”是“ anagram”的相似词):七巧板是使用字母表中每个字母的句子。其中最受欢迎的是“快速的棕色狐狸跳过懒狐狸”。看看它在英语字母的每个字母上至少有一次用法吗?

  您的任务:使用列表和递归来确定字符串是否为字母。

  答:

  isPanagram :: String -> Bool

  isPanagram sentence = and (zipWith (||) (helper sentence ['a' .. 'z']) (helper sentence ['A' .. 'Z']))

  where

  -- Helper produces a list of booleans, checking if each element of ls2 is in ls1

  helper :: Eq a => [a] -> [a] -> [Bool]

  helper ls1 ls2 = map ((flip elem) ls1) ls2

  问题2:

  编写代码以查找数字的最大素数。

  答:

  primeFactors :: Int -> [Int]

  primeFactors n = primeFactors' n 2

  where

  primeFactors' 1 _ = []

  primeFactors' n f

  | n `mod` f == 0 = f : primeFactors' (n `div` f) f

  | otherwise = primeFactors' n (f + 1)

  largestPrimeFactor :: Int -> Int

  largestPrimeFactor n = last (primeFactors n)

  问题3:Lambda表达式

  既然您已经了解了lambda表达式的实用性,请尝试使用结合了高阶函数的lambda表达式编写以下函数。

  对于双打列表中的每个元素,将其替换为x^2 + x。例如,squareAndAdd [1, 1.5, 2]应该返回[2, 3.75, 6]。

  答:

  squareAndAdd :: [Int] -> [Int]

  squareAndAdd list = map (\x -> x^2 + x) list

  从整数列表中提取大于10的偶数。例如,filterEven10 [1, 4, 11, 14, 10, 18]应返回[14, 18]

  答:

  filterEven10 :: [Int] -> [Int]

  filterEven10 list = filter (\x -> even x && x > 10) list

     计算机科学COMP1100练习问题解决方案辅导找考而思老师在线一对一辅导,快速通过。

凡来源标注“考而思”均为考而思原创文章,版权均属考而思教育所以,任何媒体、网站或个人不得转载,否则追究法律责任。

16年深耕全阶段留学辅导   数十万留学生信赖

添加微信:「 kaoersi03 」备注官网申请试听,享专属套餐优惠!

同步课件辅导、作业补习、论文润色、真题讲解、Appeal申诉、入学内测/面试培训


添加微信【kaoersi03】(备注官网)申请试听,享专属套餐优惠!

客服微信

kaoersi03

课程听不懂?作业不会写?复习没方向?专业老师为您答疑解惑

复制成功

微信号: kaoersi03

备注“官网”享专属套餐优惠!