目标
:我想在 “谁在用”代码发芽网
页面采用表格布局,每行三个链接(也就是html里面的三个td)
问题
:代码发芽网基于Django,其模板系统的语法很弱,不支持对循环因子的操作操作不容易实现
首先想到的解决方案 : 考虑到有cycle,就这么做:
{% 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>强制扭到一起不就行了?
所以得到了现在用的方案
:
{% 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上贴语法高亮的代码,百种语言,多种配色)
相关推荐
5、车厢调度问题 问题描述: 假设停在铁路调度站(如教科书中图3.1(b)所示)入口处的车厢系列的编号依次为1,2,3,…n。设计一个程序,求出所有可能由此输出的长度为n 的车厢系列。 基本要求: ⑴设计一个程序,求出由...
数据结构车厢调度问题C代码实现
数据结构 车厢调度 程序代码 报告齐全
实验要求设计一个队列结果来解决车厢重排问题。车厢重排问题为:一列货车共有n节车厢,每个车厢都有自己的编号,编号范围从1~n。给定任意次序的车厢,通过转轨站将车厢编号按顺序重新排成1~n。转轨站共有k个缓冲轨,...
列车车厢重排问题列车车厢重排问题列车车厢重排问题列车车厢重排问题列车车厢重排问题列车车厢重排问题
/* 应用:火车车厢重排问题 问题:一列火车要将n节车厢分别送往n个车站车站按1~n的次序编号,火车按照n, n-1,…, 1的编号次序经过车站。 假设车厢的编号就是其目的地车站的编号。 要求:给定一个任意的车厢排列...
车厢调度算法的实现细节,并且以pdf文档形式提供
火车车厢重排问题简单的C++火车重排源代码
数据结构车厢调度课程设计C++语言实现.程序简单易懂,仅仅40行代码!
车厢调度 假设车厢序列编号依次为1,2,3,...,n,输出所有可能长度为n的车厢序列。
数据结构,火车车厢重排问题,实验报告,有代码,实验结果截图,实验感想
车厢调度问题c++版,请大家放心下载,大家多多指教哈。
《算法里的列车车厢重排问题有哪些》是一篇面向初学者和专业人士的文章,旨在通过通俗易懂的语言,介绍算法在解决列车车厢重排问题中的应用。文章以实际问题为出发点,探讨了不同类型的车厢重排问题,并介绍了解决...
本资源是基于学生时代的完整的数据结构课程设计 实现的思路是: 利用了栈的数据结构,一方面便于结合递归算法实现求解,一方面利用了共享栈使得存储效率达到最高。
该程序是用C语言编写的,实验了火车车厢的调度情况,并将结果保存到了文本文档。
通常情况下,列车车厢重排问题是一个组合优化问题,可以使用各种算法来求解,如贪婪算法、动态规划、回溯算法、遗传算法等。这个问题在物流和交通领域有着广泛的应用,因为有效地解决了这个问题可以节省时间和资源。...
简单易懂,一列火车n节车厢,任意顺序入轨,通过有限个缓冲轨,按1—n顺序出轨。用于数据结构实验的参考
在C语言中,你可以使用各种排序算法来解决这个问题。最简单的可能是冒泡排序,但它的效率不是最高的。更高效的算法包括快速排序、归并排序等。 这个代码示例使用快速排序算法对一个整数数组进行排序。你可以将数组...
列车车厢重排问题是一个著名的组合优化问题,也被称为火车车厢重排问题(Railway Carriage Shunting Problem),它的目标是通过尽可能少的操作将一列乱序的车厢重新排列成有序的顺序。 在这个问题中,我们有一列由1...