Dec. 5th, 2014
навалял в духе проекта Эйлер
Dec. 5th, 2014 03:53 pmКороче, есть, скажем, пять вопросов для экзамена, каждый в нескольких вариантах; задача - изготовить варианты, чтобы они максимально различались. Ну типа всех возможных будет 55, а мне надо 27, ну вот взять первые 27 из таких.
С таким смаком навалял это на скале. Типа такого:
С таким смаком навалял это на скале. Типа такого:
def findFurthest(current: List[Index])(collection: List[Index]) = collection.map(i => (distance(current)(i), i)).max(order)._2
def sortByDistance(source: List[Index], target:List[Index] = Nil): List[Index] = source match {
case Nil => target
case more => {
val furthest = findFurthest(target)(source)
sortByDistance(source.filterNot(furthest==), furthest::target)
}
}
val sorted = sortByDistance(allIndexes).reverse
а вот и весь мой рендеринг
Dec. 5th, 2014 05:00 pm
def questionHTML(i: Int, q: String) =
<span>
<h3>Question {i+1}</h3>{q}
<br/><br/><br/><br/><br/><br/>
</span>
def variantHTML(v: List[String]) =
<p style="page-break-after:always;">
<h1><center>{title}</center></h1>
{v.zipWithIndex map {case(q,j) => questionHTML(j,q)}}
</p>
def html(variants: List[List[String]]) = {
<html><body>{
variants map variantHTML
}</body></html>
}