`
realfun
  • 浏览: 25592 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

车厢调配问题 与 “谁在用”代码发芽网页面

阅读更多

目标 :我想在 “谁在用”代码发芽网 页面采用表格布局,每行三个链接(也就是html里面的三个td)
问题 :代码发芽网基于Django,其模板系统的语法很弱,不支持对循环因子的操作操作不容易实现

 

首先想到的解决方案 : 考虑到有cycle,就这么做:

HTML+Django/Jinja语言 : 临时自用代码@代码发芽网
<table>
{% for w in wum %}
  {% cycle '<tr>' '' '' %}
  <td>
  <span style= "font-size:large" ><a href= " {{ w.website }} " > {{ w.title }} </a></span><small>
  <a href= " {{ w.blog_url }} " > :)</a></small>
  </td>
  {% cycle '' '' '</tr>' %}
{% endfor %}
</table>

 

紧跟着发现,这样做是有问题的 :当链接数不是正好三个的时候就会出现”tr”标签开始和结束不是匹配的

真是个烦人的问题,虽然在Django的View里面很好解决,我却不想这么做。

无意之间想到了前几天看过的文章,那是Dijkstra大师关于火车调配实践 的一段描述:

一个寓言

 

多年以前有一个铁路公司,它的一位领导(可能就是商务方面的头儿)有了这样一个
发现,如果只给百分之五十的车厢配备厕所的话,原始投资将会大大地减少。于是,
他们决定就这么做了。

 

公司执行这项措施之后不久,关于厕所的抱怨就接踵而至。经调查发现,实际情况是
尽管这家公司还很年轻,但它已经存在严重的内部沟通问题,因为上头关于厕所的决
定并没有传达给调度室,所有的车厢都得到了同等的对待,于是有时候一列车中几乎
没有一个厕所。

 

为了解决这个问题,给每个车厢都加上了一些信息,用于区别这个车厢上是否有厕所,
调度室则需要在列车编组的时候尽量保证两种车厢的数量是相等的。这对调度来说无
疑是个麻烦事,不过问题解决之后,负责调度过程的人们都为此而非常得意。

 

新的调度过程实施之后,关于厕所的抱怨却依然没有平息。新的调查发现,尽管在一
列车中确实有一半的车厢有厕所,但有时候却把所有的厕所都编组在了列车的一头。
为了对此加以补救,上头又有了新的措施,规定带厕所的车厢和不带厕所的车厢应该
交替编组。这个方法的复杂度对于调度人员来说实在是太恐怖了,不过在最初的一番
唧唧崴崴之后,他们最终还是搞定了。

 

然而,抱怨仍在继续。调查出来的原因是,对于那些有厕所的车厢来说,厕所都位于
车厢的一头,列车中两个相邻厕所的距离仍然可能会有三个车厢的长度。对于那些有
紧急需要的抱小孩儿的妈咪们——尤其是过道上充塞着行李箱的时候——就会导致灾
难性的后果。结果是,给那些带厕所的车厢又加上了一点信息,将它们变成了带方向
的物体,新的规定是,在每个列车中,所有带厕所的车厢都必须是同向的。这一次,
调度人员收到新的指示的时候就差没疯掉了,因为调车转台的数目刚刚够用,如果要
完全公正地说的话,我们必须得承认,按照任何合情合理的标准,调车转台的数目是
不够用的,调度人员必须发挥极大的创造力才能勉强搞定。

 

等到所有的厕所都均匀地分布在列车中之后,公司有理由确信所有的事情都OK了,不
过乘客们依然在抱怨:尽管没有乘客离最近的厕所会超过一节车厢,乘客们(尤其是
有紧急需要的)不知道该向过道的那个方向开始他们的冲刺!为了解决这个问题,
写有“TOILET”的箭头被固定在了过道上。这就让另一半的车厢也变成了带方向的物
体,调度过程也必须对它们的方向进行正确地排列。

 

收到新的指令之后,调度室里充斥着绝望和反抗的情绪:这是不可能的!在这个关键
时刻,有个人站了出来,他的名字已经被遗忘了,而且也无从查证,他做出了以下的
分析。当每节带厕所的车厢都在它的有厕所的一头和另一节没有厕所的车厢配好对之
后,调度室根本无需再为N个两种类型的带方向的车厢而烦恼了,因为他们面对的将
是N/2个同样的单元
,不管从哪个方面说,这些单元都可以被认为是对称的。这个分析
搞定了所有的调度问题,不过稍微有点代价,首先是每次只能向列车上加挂偶数个
的车厢——由此而增加的少量车厢可以从商务头目最初省下的那笔钱里面报销!——
其次,假定所有厕所的尺寸都是相同的。不过,谁会在乎那最后的三英尺呢?

 

尽管在发生这个故事的时候人类还没有计算机,但发现解决方案的那位匿名人物可以
当之无愧地被视为全世界第一个合格的程序员。

呵呵,然后呢,我就想,把<tr>和</tr>强制扭到一起不就行了?


所以得到了现在用的方案

HTML+Django/Jinja语言 : 临时自用代码@代码发芽网
<table style= "border-spacing:20px;text-align:center;" ><tr>
{% for w in wum %}
  {% cycle '</tr><tr>' '' '' %}
  <td>
  <span style= "font-size:large" ><a href= " {{ w.website }} " > {{ w.title }} </a></span><small>
  <a href= " {{ w.blog_url }} " > :)</a></small>
  </td>
{% endfor %}
</tr></table>
</center>


代码发芽网: http://www.fayaa.com/code/ (无需插件在blog上贴语法高亮的代码,百种语言,多种配色)

分享到:
评论

相关推荐

    车厢调度源代码

    ### 车厢调度问题分析与源代码解读 #### 一、问题背景及定义 **车厢调度问题**是计算机科学中的一个经典问题,涉及到数据结构中的栈的应用。该问题主要探讨的是如何通过一定的规则(例如栈的操作)来改变一组初始...

    数据结构 车厢调度 程序代码 报告齐全

    在IT行业中,数据结构与车厢调度是两个关键的领域,它们在解决复杂问题时起着至关重要的作用。这里,我们有一个包含程序代码和报告的压缩包,似乎专注于这两个主题的结合,提供了一种可能的解决方案或者算法实现。...

    数据结构车厢调度问题C代码实现

    数据结构车厢调度问题C代码实现

    车厢重排问题 C++实现

    车厢重排问题的解决过程展示了栈和队列在实际问题中的应用,它不仅可以帮助我们理解和掌握这两种数据结构,还可以培养我们的逻辑思维和问题解决能力。在数据结构实验中,这类问题的实践有助于深化对数据结构的理解,...

    数据结构课程作业——车厢调度问题求解

    在这个作业中,"课程设计"的文件可能包含了源代码、报告文档或者测试数据,这些内容可能进一步展示了如何具体实现这个车厢调度问题的解决方案。通过阅读和分析这些文件,我们可以了解到如何将理论知识转化为实际的...

    车厢调度 源代码

    车厢调度是一种经典的组合优化问题,通常出现在列车编组或资源分配等场景中。在这个问题中,我们假设有一个车厢序列,其编号从1到n,目标是生成所有可能的长度为n的车厢序列。这个问题的核心在于理解如何有效地遍历...

    车厢调度问题的算法实现

    在车厢调度问题中,铁路调度站的工作方式呈现出与栈(LIFO,Last In First Out)相似的特性。因此,研究者选择了栈作为算法实现的主要数据结构。具体而言,设计中包含两个栈:工作栈和输出栈。工作栈用于模拟实际...

    数据结构火车车厢重排问题

    在实验结果中,我们可以看到,使用链队列和算法可以高效地解决火车车厢重排问题。实验结果表明,使用链队列可以快速地插入和删除车厢,并且可以正确地实现车厢的排序。 数据结构火车车厢重排问题可以使用链队列来...

    北邮信通院数据结构实验_车厢重排问题代码

    实验要求设计一个队列结果来解决车厢重排问题。车厢重排问题为:一列货车共有n节车厢,每个车厢都有自己的编号,编号范围从1~n。给定任意次序的车厢,通过转轨站将车厢编号按顺序重新排成1~n。转轨站共有k个缓冲轨,...

    车厢调度问题C++版

    车厢调度问题是指在铁路调度站中,如何将入站口处的车厢序列重新排列成为出站序列的问题。在这个问题中,我们需要设计一个算法来输出所有可能的出站序列。 在这个实验报告中,我们使用C++语言来实现这个算法。我们...

    列车车厢重排问题列车车厢重排问题列车车厢重排问题列车车厢重排问题列车车厢重排问题列车车厢重排问题列车车厢重排问题

    列车车厢重排问题,顾名思义,是一个与列车调度和优化相关的算法问题。这个问题通常涉及到如何有效地重新组织一列火车的车厢顺序,以便满足特定的运营需求或优化某些性能指标,如减少换乘时间、提高运行效率等。在...

    火车车厢重排列问题 堆栈解决

    /* 应用:火车车厢重排问题 问题:一列火车要将n节车厢分别送往n个车站车站按1~n的次序编号,火车按照n, n-1,…, 1的编号次序经过车站。 假设车厢的编号就是其目的地车站的编号。 要求:给定一个任意的车厢排列...

    车厢调度C程序

    从给定的文件信息来看,这是一段关于车厢调度问题的C语言代码实现。车厢调度问题通常涉及到排序、搜索和优化算法,目的是找到最有效的车厢排列顺序,以满足特定的运输需求或目标。下面,我们将深入分析这段代码的...

    大家好,火车厢排序问题

    火车厢排序问题是一种基于计算机算法的模拟问题,它模拟了火车车厢在有限的铁轨上进行排序的过程。在这个问题中,我们通常假设每个车厢都有一个唯一的编号,目标是通过一系列移动操作将车厢按照编号从小到大的顺序...

    火车厢重排 单步演示

    在这个问题中,我们可以用一个栈来模拟火车轨道,将车厢依次压入栈中,然后按照需求顺序弹出车厢,实现重排。 首先,我们需要理解堆栈的基本操作。堆栈是一种线性数据结构,支持两个主要操作:push(压入)和pop...

    数据结构课程设计车厢调度

    在解决车厢调度问题之前,需要了解一些基本的数据结构概念,如栈、队列、数组等。栈是一种后进先出的数据结构,可以使用数组或链表实现。队列是一种先进先出的数据结构,同样可以使用数组或链表实现。数组是一种基本...

    火车车厢重排问题

    火车车厢重排问题简单的C++火车重排源代码

    车厢调度程序 数据结构

    通过对“车厢调度程序 数据结构”的分析,我们不仅理解了栈作为一种基本数据结构在解决实际问题中的作用,还学习了如何通过递归和栈的组合使用来解决复杂的调度问题。这种结合了数据结构理论与实际编程技巧的方法,...

    车厢调度——40行代码

    数据结构车厢调度课程设计C++语言实现.程序简单易懂,仅仅40行代码!

    车厢调度问题

    在这个问题中,我们有n个车厢,编号从1到n,目标是设计一个程序来生成所有可能的车厢顺序,每个顺序的长度都是n。 在解决这类问题时,可以采用递归的方法。递归是一种解决问题的策略,它将一个问题分解成更小的子...

Global site tag (gtag.js) - Google Analytics