一种单词学习阵列的生成方法、系统、介质及电子设备与流程

文档序号:23859984发布日期:2021-02-05 16:09阅读:90来源:国知局
一种单词学习阵列的生成方法、系统、介质及电子设备与流程

[0001]
本公开涉及教学设备技术领域,特别涉及一种单词学习阵列的生成方法、系统、介质及电子设备。


背景技术:

[0002]
本部分的陈述仅仅是提供了与本公开相关的背景技术,并不必然构成现有技术。
[0003]
单词学习是外语学习如英语学习最为关键和主要的一个步骤。使用不同的方法学习和熟悉单词是外语教学或者学习的常用方式。英语单词的学习方式除了基于课文、听力材料、单词表记忆等,使用其他方式的学习方式也是非常重要的补充。
[0004]
在诸多英语单词方式中,构建杂乱的单词阵列进行单词查询学习是一种较为常见的单词教学方式。一般的单词阵列的生成方式是在一个矩形空白网格中填入需要查找的单词(目标单词)然后使用其他随机的字符进行填充,学生则尝试尽可能多的找到网格中藏有的单词;该单词阵列的设计一般需要人工的构建并将其转换为电子的格式或者纸张的格式进行出版,而使用人工的方式本身就是较为耗时的工作,如果单词量较多则会更加的困难。


技术实现要素:

[0005]
为了解决现有技术的不足,本公开提供了一种单词学习阵列的生成方法、系统、介质及电子设备,可以以多个单词作为目标单词,并自动生成含有这些单词的学习阵列,而且通过目标单词、表格起始位置以及方向的排序变化,能够实现不同学习阵列的快速生成。
[0006]
为了实现上述目的,本公开采用如下技术方案:
[0007]
本公开第一方面提供了一种单词学习阵列的生成方法。
[0008]
一种单词学习阵列的生成方法,包括以下步骤:
[0009]
获取目标单词列表,根据最长单词设定初始矩阵网格的网格数量;
[0010]
遍历目标单词列表中的所有单词,按照预设插入方向依次插入矩阵网格中;
[0011]
对任一个单词,进行预设次数的插入,如果无法插入,则矩阵网格延拓后重新执行所有单词的插入;
[0012]
当所有单词均被插入时,将矩阵网格中空格随机填入字符。
[0013]
作为可能的一些实现方式,每次执行所有单词的插入循环时,进行目标单词列表的随机排列。
[0014]
作为可能的一些实现方式,初始矩阵网格的行或列所包含的网格数量为最长单词的字符个数加上预设量。
[0015]
作为可能的一些实现方式,单词插入矩阵网格,包括:
[0016]
对任一个单词,选定一个方向,选定一个单元格,然后在这个单元格上按这个方向填入顺序单词的字符,如果字符超过边界则放弃,换一个方向继续执行字符填入操作;如果字符没有超过边界,执行插入操作。
[0017]
作为进一步的限定,对网格元素随机排列,遍历某个网格位置,对方向元素随机排
列,遍历某个方向,在当前网格的位置按照当前方向插入单词,如果成功则继续下一个单词的插入,否则继续执行网格元素和网格位置的随机排列和遍历操作,直到单词被插入。
[0018]
作为进一步的限定,如果当前单词的某个字母已经被在先单词的位置占据,在插入时,如果下一个位置已有字母,判断是否与要填写的字母相同,如果是则继续插入,否则,当前的起始位置视为失败,尝试下个方向或者位置。
[0019]
作为进一步的限定,判断在当前单元格和当前方向下单词是否越界,如果是则直接返回失败;
[0020]
依次判断在当前位置和方向下要插入的每个位置是否已有被占据,如果是,则判断已经被占据的字母是否与要插入的字母相同,如果不相同则插入失败;如果相同,则在网格中的当前位置和方向插入单词所有字母。
[0021]
本公开第二方面提供了一种单词学习阵列的生成系统,包括:
[0022]
数据获取模块,被配置为:获取目标单词列表,根据最长单词设定初始矩阵网格的网格数量;
[0023]
单词插入模块,被配置为:遍历目标单词列表中的所有单词,按照预设插入方向依次插入矩阵网格中;
[0024]
插入执行模块,被配置为:对任一个单词,进行预设次数的插入,如果无法插入,则矩阵网格延拓后重新执行所有单词的插入;
[0025]
阵列生成模块,被配置为:当所有单词均被插入时,将矩阵网格中空格随机填入字符。
[0026]
本公开第三方面提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现如本公开第一方面所述的单词学习阵列的生成方法中的步骤。
[0027]
本公开第四方面提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的程序,所述处理器执行所述程序时实现如本公开第一方面所述的单词学习阵列的生成方法中的步骤。
[0028]
与现有技术相比,本公开的有益效果是:
[0029]
1、本公开所述的方法、系统、介质或电子设备,可以以多个单词作为目标单词,并自动生成含有这些单词的学习阵列,而且通过目标单词、表格起始位置以及方向的排序变化,能够实现不同学习阵列的快速生成;通过自动增加的网格大小进行测试,只要目标单词的数量固定,则保证能够找到含有所有目标单词的网格实例,不会漏掉某个单词。
[0030]
2、本公开所述的方法、系统、介质或电子设备,本方法的示例实现尽管使用的是英语,而只要是基于字母的外语都可以通过本算法生成找单词阵列,算法的定制性较高,可以根据不同的情况进行扩展和修改,例如修改目标单词的呈现方向、矩形区域的长短比例等;方法完全自动完成,可以在任何系统和编程语言中实现,可以应用于不同平台。
[0031]
本公开附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本公开的实践了解到。
附图说明
[0032]
构成本公开的一部分的说明书附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。
[0033]
图1为本公开实施例1提供的单词学习阵列的生成方法的流程示意图。
[0034]
图2为本公开实施例1提供的共用字母示意图。
[0035]
图3为本公开实施例1提供的单词学习阵列1。
[0036]
图4为本公开实施例1提供的单词学习阵列2。
[0037]
图5为本公开实施例1提供的单词学习阵列3。
[0038]
图6为本公开实施例1提供的单词学习阵列4。
具体实施方式
[0039]
下面结合附图与实施例对本公开作进一步说明。
[0040]
应该指出,以下详细说明都是示例性的,旨在对本公开提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本公开所属技术领域的普通技术人员通常理解的相同含义。
[0041]
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本公开的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
[0042]
在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
[0043]
实施例1:
[0044]
如图1所示,本公开实施例1提供了一种单词学习阵列的生成方法,包括以下步骤:
[0045]
获取目标单词列表,根据最长单词设定初始矩阵网格的网格数量;
[0046]
遍历目标单词列表中的所有单词,按照预设插入方向依次插入矩阵网格中;
[0047]
对任一个单词,进行预设次数的插入,如果无法插入,则矩阵网格延拓后重新执行所有单词的插入;
[0048]
当所有单词均被插入时,将矩阵网格中空格随机填入字符。
[0049]
具体的,包括以下步骤:
[0050]
step1:创建目标单词列表;设置矩形网格类及设置初始的矩形边长;
[0051]
step2:进入循环
[0052]
step3:当尝试次数没有超过阈值,进入循环
[0053]
step4:单词列表进行随机洗牌;
[0054]
step5:创建一个以当前矩形边长为维度的二维矩阵;
[0055]
step6:对目标单词列表进行遍历
[0056]
step7:对当前单词进行插入操作;
[0057]
step8:如果所有单词全部被插入
[0058]
step9:跳出step2循环;
[0059]
step10:尝试次数加1,回到step3;
[0060]
step11:矩形边长加1,回到step2;
[0061]
step12:对没有填入目标单词的空格随机填入其他字符,算法结束。
[0062]
详细说明
[0063]
算法的整体流程如下。在step1主要为接收参数。本实施例的唯一参数为需要生成
的单词集合,这里称为目标单词列表。同时设定生成网格的长度。这里的长度是与单词的长度单位对应。
[0064]
例如如果要生成一个长度为5的单词,则最小的网格大小必须为5。这里不考虑多行的情况,只考虑在某一行、某一列或者某一对角线出现该单词。当目标单词较多时,有可能出现无法插入单词的情况,例如单词较多而网格较小。因此需要首先初始化一个矩形的边长。由于没有理论上的支持,因此可以将最大目标单词的长度加1作为初始的变长。
[0065]
由于上述原因,在某个大小的网格中可能无法全部插入单词。因此算法使用step2的循环来不断尝试增加边长后的网格。如果在当前边长下无法插入单词,即无法成功的生成单词阵列实例,则在最后即step11使边长加1,即扩大网格面积。显然,只要目标单词不是无限的,当网格增加到一定长度时(例如所有单词长度之和),一定会出现一次成功插入所有单词的情况。为了讲解方便,这里使用长宽相等的矩形即方形来表述。如果要实现长宽不等的矩形,则可以在step11进行交替的增加长和宽来增加网格面积大小。
[0066]
算法从step3进入循环内部。由于算法具有一定的随机性,因此对于一个固定的目标单词列表和当前的网格大小,在后面的插入操作中有可能成功也有可能不成功。因此,在所有参数都固定的情况下进行多次插入所有单词的尝试。这里的尝试次数阈值一般可以设定为100~200次。如果在某次尝试中没有成功的将所有单词插入,即没有生成一个单词阵列示例,则继续在当前参数下尝试,且用尝试次数的计数加1。如果尝过阈值仍然没有成功,则会进入最外层循环,扩大网格面积。也就是说,算法的最外层循环用于增加网格面积,下一层循环是在当前面积下尝试多次。
[0067]
算法在step4,将目标单词表进行随机化排列,即洗牌操作。这样做的目的是为最后单词阵列的界面产生一定的随机性。如果想生成多个单词阵列界面,且包含的目标单词相同,洗牌操作可以保证每次生成的界面不同,增加算法的适用性。如果仅仅生成一次实例,则该操作可以省略。算法在step5建立一个网格在计算机内存中的实例,以方便后续的插入操作。
[0068]
算法在step6进入目标单词列表遍历循环。在该循环内尝试将所有的单词插入到网格中。插入操作由step7完成。该步骤做进一步具体的解释。
[0069]
首先该操作的整体思路是选定一个方向,选定一个单元格,然后在这个单元格上按这个方向填入顺序单词的字母,如果字母超过边界则放弃。
[0070]
首先,单词可以在多个方向中呈现,例如在某一行中从左到右,或者在某一列中从上到下。根据单词阵列生成需要,也可以从右到左,从下到上。因此,为了表示单词的呈现方向,首先定义代表方向的枚举类。在当前示例实现中,使用了三个方向,即比较常见的从左到右,从上到下的方向。对于对角线,只采用了从左上角到右下角的方向。其他实现中可以相应的改变。在编程实现过程中可以使用两个表示水平和竖直方向的数,比如正1和负1来表示某个方向。
[0071]
另一方面,为了既保持随机性,又能尝试所有的方向,可以对方向元素进行洗牌处理。比如第一次尝试从左到右,第二次尝试左上到右下,第三次尝试从上到下。而对下一个单词,该顺序可能会变,但是都会被用到。该方法对网格的选择同样使用。即首先对所有的网格位置全部洗牌,然后依次尝试。插入操作,即上述步骤step7,具体为以下步骤。
[0072]
step7.1.对网格元素随机洗牌,遍历某个网格位置
[0073]
step7.2.对方向元素洗牌,遍历某个方向
[0074]
step7.3.在当前网格的位置按照当前方向插入单词;
[0075]
step7.4.如果成功则返回;
[0076]
step7.5.方向遍历结束;
[0077]
step7.6.网格位置遍历结束;
[0078]
step7.3的具体解释如下。在该步骤中,涉及一个如果当前单词的某个字母已经被先前单词的位置占据的判断。如图2所示,两个单词共用了一个字母o。对于这种情况在插入单词时,如果下一个位置已有字母,只需判断是否与要填写的字母相同即可。如果是则没有影响。如果不是,则当前的起始位置视为失败,就会尝试下个方向或者位置。
[0079]
插入单词,即上述step7.3的具体实现为以下步骤。
[0080]
step7.3.1:判断在当前位置和当前方向下单词是否越界,如果是则直接返回失败
[0081]
step7.3.2:依次判断在当前位置和方向下要插入的每个位置是否已有被占据,如果是
[0082]
step7.3.3:判断已经被占据的字母是否与要插入的字母相同,如果不相同则返回失败;
[0083]
step7.3.4:在网格中的当前位置和方向插入单词所有字母并返回成功
[0084]
在总体算法流程的step12中,所有目标单词已经插入后对剩下的网格位置填充随机字母即可。
[0085]
实验结果
[0086]
以下为使用目标单词列表bound、natural、conceal、regret、compliment、paddle、groove、overturn和sink并由本算法生成的单词阵列实例,如图3、图4、图5和图6所示。
[0087]
实施例2:
[0088]
本公开实施例2提供了一种单词学习阵列的生成系统,包括:
[0089]
数据获取模块,被配置为:获取目标单词列表,根据最长单词设定初始矩阵网格的网格数量;
[0090]
单词插入模块,被配置为:遍历目标单词列表中的所有单词,按照预设插入方向依次插入矩阵网格中;
[0091]
插入执行模块,被配置为:对任一个单词,进行预设次数的插入,如果无法插入,则矩阵网格延拓后重新执行所有单词的插入;
[0092]
阵列生成模块,被配置为:当所有单词均被插入时,将矩阵网格中空格随机填入字符。
[0093]
所述系统的工作方法与实施例1提供的单词学习阵列的生成方法相同,这里不再赘述。
[0094]
实施例3:
[0095]
本公开实施例3提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现如本公开第一方面所述的单词学习阵列的生成方法中的步骤,所述步骤为:
[0096]
获取目标单词列表,根据最长单词设定初始矩阵网格的网格数量;
[0097]
遍历目标单词列表中的所有单词,按照预设插入方向依次插入矩阵网格中;
[0098]
对任一个单词,进行预设次数的插入,如果无法插入,则矩阵网格延拓后重新执行
所有单词的插入;
[0099]
当所有单词均被插入时,将矩阵网格中空格随机填入字符。
[0100]
详细步骤与实施例1提供的单词学习阵列的生成方法相同,这里不再赘述。
[0101]
实施例4:
[0102]
本公开实施例4提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的程序,所述处理器执行所述程序时实现如本公开实施例1所述的单词学习阵列的生成方法中的步骤,所述步骤为:
[0103]
获取目标单词列表,根据最长单词设定初始矩阵网格的网格数量;
[0104]
遍历目标单词列表中的所有单词,按照预设插入方向依次插入矩阵网格中;
[0105]
对任一个单词,进行预设次数的插入,如果无法插入,则矩阵网格延拓后重新执行所有单词的插入;
[0106]
当所有单词均被插入时,将矩阵网格中空格随机填入字符。
[0107]
详细步骤与实施例1提供的单词学习阵列的生成方法相同,这里不再赘述。
[0108]
本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
[0109]
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0110]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0111]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0112]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)或随机存储记忆体(random accessmemory,ram)等。
[0113]
以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1