输出受限的双端队列所能输出的序列

设有一个输出受限的双端队列,有元素1,2,3,4,并按照1,2,3,4的顺序入队,在入队过程中只要队列不空便可以随意出队。请列出所有可能的出队序列。假设从右端输出。

解:4个元素,全排列数为4!=24种序列,需要一一验证这24种序列中哪些满足,哪些不满足。

首先要明确一点,对于一个两边都可以入队的队列,当预入队元素个数是1,2的时候,入队以后从左到右的序列是元素的全排列,这是很好验证的。但是预入队元素个数>2的时候,1入队,从哪边入队都没区别,2和3从左右入队均会形成两种不同的结果,所以当123连续入队而不出队的时候,只会形成4种序列,3+(12的入队序列),(12的入队序列)+3,而12的入队序列为12,21,所以123连续入队而不出队的时候,形成的序列为3+(12,21),(12,21)+3,即312321123213,所以4先出的时候,不会是全排列,只会是(123入队序列)+4,即(312321123213)+4,即3124321412342134,不可能有13242314,所以从右边出,不可能有(13242314的逆序),即不可能有42314132

其次第一次出队时队列中的情况,可分为这么几种:个数分别为1,2,3,4。

(1)当个数为1的时候,出队元素一定是1,于是(234的入队出队序列)+1,而234中,谁都可能先出,于是234的入队出队序列为(34的入队出队序列)+2,(24的入队出队序列)+3,(12的入队出队序列)+4,即(34,43)+2,(24,42)+3,(23,32)+4,即342432243423234324,于是(234的入队出队序列)+1展开为(342432243423234324)+1,即342143212431423123413241

(2)当个数为2的时候,队列中一定是21或者12,其中21可能产生的出队序列与第 (1)种情况完全一致。12可能产生的出队序列是第(1)种情况里所有可能结果中把1与2互换位置的结果,即341243121432413213423142

(3)当个数为3的时候,队列中一定是123的输入序列,即312321123213,此时无论出队几个元素,再让4入队,再出队,都相当于在312321123213这四个序列任意一个元素的左侧或者右侧插入4,于是有4312432141234213,及3412342114232413,及3142324112432143,及3124321412342134

(4)当个数为4的时候,队列中一定是1234的输入序列,即4+(123的输入序列),(123的输入序列)+4,即4+(312321123213),(312321123213)+4,其结果包含在第(3)种情况中了。

把上述序列综合在一起排序以后得到
13421432142312431234
24312341241321432134
3142341234213241341234213142324131243214
41324312432142314312432141234213

去重以后得到
13421432142312431234
24312341241321432134
314234123421324131243214
413243124321423141234213

1开头的全排列有6个,现在只有5个,少了1324
2开头的全排列有6个,现在只有5个,少了2314
3开头的,全排列有6个,现在去重以后确实有6个
4开头的,全排列有6个,现在去重以后确实有6个

所以原本1234的全排列有4!=24个,只缺了2个,即13242314,按右侧输出,输出序列为42314132

还有另外一种思路,1234的全排列,前两个的组合无非是A{4,2}=12种组合,可一一验证是否可行。

12
13
14
21
23
24
31
32
34
41
42
43

12,1入队以后马上出,2入队以后马上出。
13,1入队以后马上出,2入队不出,3入队以后马上出。
14,1入队以后马上出,2和3入队以后不出,4从右侧入队后马上出。
21,1入队后不出,2从右侧入队后,12从右侧出队。
23,1入队后不出,2从右侧入队后马上出,1保留不出,3从右侧入队后马上出。
24,1入队后不出,2从右侧入队后马上出,1保留不出,3入队后保留,4入队以后马上出。
31,1入队以后不出,2从左侧入队,3在2入队以后从右侧入队马上出,1紧随其后出队。
32,1入队以后不出,2从右侧入队不出,3从右侧入队以后马上出,2接着出。
34,1入队以后不出,2从右侧入队不出,3从右侧入队以后马上出,12保留不出,4从右侧入队以后马上出。
以上9种情况,前两位出了以后,要么还有两个数没入队,要么还有一个没入队,要么还有两个在队列里,没入队的都可以通过选择从左边或者右边入队,形成两种不同的出队序列,没出队的两个元素中后入队的那个元素在当初入队的时候可以选择从左边或者右侧入队,便可以形成两种出队序列。所以以上9种情况,对应了18中互不相同的出队序列。
41,要想4先出,1第二个出,23只能在1入队以后从左边入队,所以41开头的只有一种结果4123,不可能有4132
42,要想4先出,2第二个出,只能是2在1入队以后从右侧入队,3从左侧入队,4从右侧入队,所以42开头的只有一种,4213,不可能4231
43,只能34从右侧入队,2从左边或者右边都可以,所以对应43开头的两种出队序列。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RBF神经网络(Radial Basis Function Neural Network)是一种常用的神经网络模型,它的输出受限指的是网络输出的取值范围被限制在一定的范围内。 RBF神经网络由输入层、隐藏层和输出层组成。隐藏层中的神经元使用径向基函数(Radial Basis Function)作为激活函数,常用的径向基函数有高斯函数和多项式函数等。隐藏层的神经元根据输入数据与其对应的中心点之间的距离来计算激活值,然后将激活值传递给输出层。 在RBF神经网络中,输出层通常采用线性激活函数,例如恒等函数。这意味着输出层的取值范围没有被限制,可以是任意实数。然而,有时候我们希望网络的输出在一定的范围内,例如在某个特定的区间或者满足某些约束条件。为了实现这种输出受限的目标,可以对输出层进行适当的调整。 一种常见的方法是使用激活函数进行输出限制。例如,可以使用Sigmoid函数或者Tanh函数作为输出层的激活函数,这些函数具有将输入映射到特定范围内的特性。通过选择合适的激活函数和调整其参数,可以实现对输出的限制。 另一种方法是对输出进行后处理。例如,可以通过线性变换或者阈值函数来将输出限制在指定的范围内。这种方法可以根据具体的需求进行灵活的调整。 总之,RBF神经网络的输出受限可以通过选择合适的激活函数或者进行后处理来实现。具体的方法取决于应用场景和需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值