# Re: n-Queens Problem

• From: David Carlisle <d.p.carlisle@gmail.com>
• To: "Costello, Roger L." <costello@mitre.org>
• Date: Sat, 1 Apr 2017 23:49:27 +0100

If you use an easier markup, for example

<n-queens>
<q c="1" r="3"/>
<q c="2" r="1"/>
<q c="3" r="4"/>
<q c="4" r="2"/>
</n-queens>

which denotes your board with 4 queens in the specified row and
column, then I think the following single xpath works for any size
board and evaluates to true if  every column has a queen, every row
has a queen and the number of distinct  falling and rising diagonals
with a queen equals the number of queens.

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="n-queens">
<xsl:sequence select="
(every \$c in 1 to count(q) satisfies exists(q[@c=\$c])) and
(every \$r in 1 to count(q) satisfies  exists(q[@r=\$r])) and
count(q)=count(distinct-values(q/(number(@r) - number(@c)))) and
count(q)=count(distinct-values(q/(number(@r) + number(@c))))
"/>
</xsl:template>
</xsl:stylesheet>

you could easily make that into a schematron assertion.

On 1 April 2017 at 23:19, David Carlisle <d.p.carlisle@gmail.com> wrote:
>
>>     <column1><row>3</row></column1>
>
> why the horrible asymmetry in the markup, with the column number in the
> element name and the row number in element content?
> That defeats most ways of shortening the schema by exploiting the symmetry
> in the problem.
>
> David

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]

### PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
 RSS 2.0 Atom 0.3 Stylus Studio has published XML-DEV in RSS and ATOM formats, enabling users to easily subcribe to the list from their preferred news reader application.