Stanford CS107 Assignment 1: Random Sentence Generator(RSG)

编程入门 行业动态 更新时间:2024-10-07 13:19:22

Stanford CS107 <a href=https://www.elefans.com/category/jswz/34/1769111.html style=Assignment 1: Random Sentence Generator(RSG)"/>

Stanford CS107 Assignment 1: Random Sentence Generator(RSG)

Abstract

本人正在学习Stanford CS107。这门课很不错,我简单把这门课的信息说一下。

keyvalue
官网
课程名编程范式
所需基础C,C++
上课视频Bilibili搜索 (可能会失效)
我做的作业

Assignment Task

对于我来说,这个任务的难度在于阅读handout(本人英语渣)。所以我这里把任务说一下。(Random Sentence Generator 我直接缩写为RSG)
Jerry老师给出了程序的骨架,只需要我们10-20行代码即可完成任务。
程序基于使用context-free grammar.(缩写为CFG)。语法其实类似于模板作文。我举个例子(即handout的例子)

首先:所有的CFG从<start>标签开始。
以上图为例:这个句子的模板为 The <object> <verb> tonight,填入<object> <verb>即可
{
<>


}
圈起来的即为可从模板中填写词。
根据上面给出的模板可以写出:
①The big yellow flowers sign warily tonight;
②The waves die warily tonight;
…等等
通过随机的选择模板里的单词,就能随机的生成句子了。

通过阅读老师给的骨架(有很多注释),编写代码。这就是RSG的任务了


Assignment solution

通过思考,其实使用CFG语法写的句子就是一棵树的一条路径。而RSG随机生成句子:就是随机走一条路。所以DFS就可以解决问题啦。


现在剖析下老师给的骨架
老师定义了两个类 Production,Definition。仔细一看:
Production是把vector<string>封装起来。
Definition是把vector<Produvtion>封装起来。
有什么用呢?且看下图

更多推荐

Stanford CS107 Assignment 1: Random Sentence Generator(RSG)

本文发布于:2024-02-28 05:41:54,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1768543.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Assignment   Stanford   Random   RSG   Generator

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!