首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >状态图/有限状态机是否适合对问卷进行建模?

状态图/有限状态机是否适合对问卷进行建模?
EN

Stack Overflow用户
提问于 2018-08-16 15:56:56
回答 5查看 917关注 0票数 5

我想对上面的问卷进行建模,我认为这是一个有向无圈图。

我一直在看的两个图书馆是:

我有几个问题是:

  1. 问卷依赖于以前的状态,例如,以前问题的答案被用于过渡到另一个国家(问题)。我认为“外部国家”可以解决这个问题,对吗?
  2. 如果我在Q6,我想转移到前面的问题,然后根据前面的答案,这可能是Q1,Q4,或Q5。我想我可以用一个堆栈来推动每一个状态,随着问卷的进展,然后弹出回到以前的状态。

这听起来可行吗?还是有更好的方法来模拟这个问题?

EN

Stack Overflow用户

发布于 2018-08-18 07:59:08

现实世界的问卷需要将答案保存在某个地方,而外部状态(就像一组键值对)被证明是有用的。在图中存储给定答案的任何尝试(其中每个可能的值都是一个分离的节点)将立即失败,这是一种称为状态爆炸的现象。

然而,获取先前给出的答案,然后使用条件表达式来实现转换,这是一种转义舱口。作为基于自动机的编程的倡导者,我认为的使用在大多数情况下应该局限于输入数据,并且不应该以这种方式检查外部状态,除非期望的行为不能用合理的图来表示。

为了证明它确实可以工作,我在罗斯马洛中实现了它,并将它推到了这个存储库-- https://github.com/lukaszmakuch/so-questionnaire。您可以在这里的编辑器- https://i.stack.imgur.com/uDkh5.png中看到图形的样子。

这是一个完整的工作示例,支持:

  • 阅读当前的问题
  • 回答当前的问题
  • 读给出的答案
  • 回到上一个问题

下面是它的工作原理:

代码语言:javascript
运行
复制
git clone https://github.com/lukaszmakuch/so-questionnaire.git
cd so-questionnaire/
npm i
npm start
$ question()
'Q1'
$ answer('baz')
undefined
$ question();
'Q6'
$ answer('anything')
undefined
$ answers();
{ Q1: 'baz',
  Q2: null,
  Q3: null,
  Q4: null,
  Q5: null,
  Q6: 'anything' }
$ back()
undefined
$ question()
'Q1'
$ answer('foo')
undefined
$ question()
'Q2'
$ answer('test')
undefined
$ answers()
{ Q1: 'foo', Q2: 'test', Q3: null, Q4: null, Q5: null, Q6: null }
$ question()
'Q3'
$ answer('bar')
undefined
$ question()
'Q4'
$ answer('fuzz')
undefined
$ question()
'Q6'
$ back()
undefined
$ question()
'Q4'
$ 
票数 0
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51881085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档