八皇后问题的Scala解法

  好久没做过算法题了,那本《算法导论》都堆了N cm的一层灰了-_-
  废话不多说了,下面是代码:
/**
&# Queen.scala
八皇后问题的Scala解法
@author Eastsun
@date 2008.5.19
*/
object Queen extends Application{
solve()

/**
列出八皇后问题的92中解法
*/
def solve(){
var count =0

//ls记录了已放皇后的位置(x,y),x表示行,y表示列
def solve(ls:List[(Int,Int)]):Unit = {
if( ls.size == 8 ) printAnswer(ls)
else{
var s =ls.size
for( t <- 0 until 8 )
if(ls.forall(i => {
var (x,y) =i
!(x==s||y==t||x+y==t+s||s-x==t-y)
})) solve((s,t)::ls)
}
}

//打印结果,'o'表示皇后
def printAnswer(an:List[(Int,Int)]){
count += 1
println("\n#Answer "+count)
for(r <- 0 until 8 ){
for(c <- 0 until 8 ) print(if(an(7-r)._2==c) 'o' else 'x')
println()
}
}
solve(Nil)
}
}
【WebApi + Sqlserver】 使用C#编写WebApi并打开sqlserver数据库进行访问,代码适用于简单练习,真实开发需自行完善 阅读详情

相关推荐

概率论 知识图谱 + 实战案例解析

本文通过构建概率论知识图谱,系统梳理了从随机试验、概率、条件概率到随机变量与分布的核心概念及其内在联系。结合朴素贝叶斯分类器和蒙特卡洛模拟等实战案例,深入解析了条件概率、独立性及大数定律等理论如何应用于机器学习与实际问题求解,旨在帮助读者建立结构化思维,将理论有效转化为解决实际问题的能力。

weixin_29051193的博客 269

scala 回溯法解决八皇后问题

object EightQueen extends App{ val queenArray = new Array[Int](8) var num = 0 def printqueen(){ for(i <- 0.until(8);j <- 0.until(8)){ if(j == queenArray(i)) print('*') else print('-') if(j

o1101574955的专栏 1093

手把手教你用scRNA-seq和scTCR-seq分析CD8⁺ T细胞在免疫治疗中的动态变化

本文详细介绍了如何整合单细胞RNA测序(scRNA-seq)与单细胞TCR测序(scTCR-seq)技术,深入解析CD8⁺ T细胞在癌症免疫治疗中的动态变化。通过从数据预处理、细胞亚群鉴定到TCR克隆追踪的完整分析流程,揭示了T细胞的功能状态转变与克隆演化规律,为理解免疫应答机制和开发精准治疗策略提供了关键方法学指导。

p8q9r0的博客 570

scala解决八皇后问题

八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。        该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:               在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,               问有多少种摆法? def nqueens(n:Int):Set[List[Int]] ={

shuangshaung_的博客 542

水文模型大合集---SWAT模型、VIC模型、HEC-HMS模型、HSPF模型、FVCOM模型、Delft3D模型、HYPE模型.......

1.1 面源污染概要1.2 SWAT模型及应用1.3 SWAT模型原理1.4 SWAT模型输入文件1.5 ArcGIS与SWAT关系。

jwwkyjspt的博客 4362

STM32驱动LED矩阵:IS31FL3731与查理复用技术实践

LED矩阵显示是嵌入式系统中常见的人机交互方式,其核心在于高效的驱动技术。查理复用(Charlieplexing)作为一种创新的矩阵扫描方式,通过引脚复用技术,用N个引脚驱动N²-N个LED,大幅提升了硬件资源利用率。IS31FL3731驱动芯片集成了这一技术,配合STM32F410RB微控制器的强大性能,可实现144个LED的精准控制。这种组合在艺术装置、信息展示等场景中展现出独特优势,既能呈现丰富的视觉效果,又能通过内置PWM调光实现256级亮度控制。通过I2C接口通信,开发者可以轻松实现字符显示、图像

weixin_29193359的博客 280

Linux安装Scala时遇到的问题

Scala安装时遇到的问题 安装完成后运行scala命令出现 cat: /release: 没有那个文件或目录

qq_39937778的博客 1613

深入AOSP构建系统:从BUILD_FINGERPRINT的生成逻辑,看如何定制你的Android设备标识

本文深入解析AOSP构建系统中的设备指纹生成机制,详细介绍了BUILD_FINGERPRINT的生成逻辑及其在Android设备中的关键作用。通过分析多个指纹属性的区别与联系,以及如何定制设备标识,帮助开发者更好地理解和掌握Android系统构建过程。

weixin_27017211的博客 222

scala 深搜法解决八皇后问题

object EightQueen2 extends App{ val pos = new Array[Int](8) val rowvisited = new Array[Boolean](8) val colvisited = new Array[Boolean](8) val maindiagonalvisited = new Array[Boolean](15) val coun

o1101574955的专栏 912

Linux文件操作四剑客

① /^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/ // 年-月-日 yyyy-MM-dd / yy-MM-dd 格式。⑥“^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$” //正浮点数。

wuds_158的博客 1611

YOLOv11改进策略【注意力机制篇】| 2024 蒙特卡罗注意力(MCAttn)模块,提高小目标的关注度

本文记录的是基于蒙特卡罗注意力(MCAttn)模块的YOLOv11目标检测改进方法研究。利用提高的跨尺度特征提取能力,使模型能够更好地传递和融合提取的多尺度特征,提高对小目标的关注度。Exploiting Scale-Variant Attention for Segmenting Small Medical Objects使用一种基于随机采样的池化操作来生成尺度无关的注意力图。它从三个不同尺度(3×33×33×3、2×22×22×2和1×11×11×1,即池化张量)中随机选择一个1×11×11×1注意力图

Limiiiing的博客 3602

scala 解决8皇后问题

val n = 14 val Col = new Array[Boolean](n) val Bevel1 = new Array[Boolean](n*2) val Bevel2 = new Array[Boolean](n*2) def col(y: Int) = !Col(y) def bevel1(x: Int, y: Int) = !Bevel1(x-y+n-1) def b

badopencoder的博客 356

【高级强化学习:算法、优化与泛化】第13章 扩散模型策略优化(Diffusion Policy Optimization)

\quad$ 计算均值 $\mu_t = \frac{1}{\sqrt{\alpha_t}} \left( x_t - \frac{1 - \alpha_t}{\sqrt{1 - \bar{\alpha}_t}} \tilde{\epsilon} \right)$.$\quad$ 组合得分估计: $\tilde{\epsilon} = \epsilon_{\text{unc}} + w \cdot (\epsilon_{\text{con}} - \epsilon_{\text{unc}})$.

u012133341的博客 339

八皇后问题

八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 scala解法 def nqueen(n:Int) : Set[List[Int]] ={   def placeQueen(k:Int) :Set

abc_321a的博客 397

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Universal Modder 的 fal 资产生成管线:`um fal` 配方、fal MCP 配置与 fal_manifest.jsonl 可复现性

本篇围绕 Universal Modder 仓库中的 `fal-assets` 技能文档展开,讲解如何用 fal(fal.ai)的一把 API key 为 Mod 生成尚不存在的游戏资产——精灵图、图标、无缝贴图、PBR 材质、image-to-3D 模型、自动绑定、音效、音乐、语音与预告片片段。读完你可以掌握三条调用通道(fal MCP 发现层、`um fal` CLI 落盘层、`fal api

gitblog_00666的博客 320

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

专访《Haskell函数式编程入门》作者张淞:浅谈Haskell的优点与启发

张淞,Haskell语言爱好者,著有《Haskell函数式编程入门》一书。目前就职于网易杭州研究院。在10月15日~17日的QCon上海2015上,他将分享《Haskell中的函数与类型系统》:\\\Haskell中的主要概念其实都是围绕类型展开的,类型系统主要是为我们管理程序的抽象与保证程序的正确性而引入的。为了更好的复用代码,于是有了多态类型。某些类型有着共同的属性,于是Haskell引入了类...

weixin_34101229的博客 76

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

八皇后问题解法

8皇后是个经典的问题,如果使用暴力法,每个格子都去考虑放皇后与否,一共有264 种可能。所以暴力法并不是个好办法。由于皇后们是不能放在同一行的, 所以我们可以去掉“行”这个因素,即我第1次考虑把皇后放在第1行的某个位置, 第2次放的时候就不用去放在第一行了,因为这样放皇后间是可以互相攻击的。 第2次我就考虑把皇后放在第2行的某个位置,第3次我考虑把皇后放在第3行的某个位置, 这样依次去递归。每

tylong2012的专栏 1550

使用回溯法解决八皇后问题(同样适用于N皇后)。

在学习数据结构的时候,看到了一道八皇后的问题。写完后,再去网上查看发现原来这个问题有这么多的优化解法,相比之下相形见绌。但我还是记录下来,有兴趣的小伙伴可以看看。 先大致说下我的思路 创建一个初始化值为0的8x8的数组,0代表无皇后且不在其他皇后的攻击范围,-1代表皇后的位置,&amp;amp;amp;amp;amp;amp;amp;gt;0的整数代表格子在皇后的攻击范围。例如某个格子的数字为3说明该格子在3个皇后的攻击范围。 下面是代码,最后求...

Twilight blog 1034

[USACO 1.5.4]checker(水题重做——位运算(lowbit的应用))

描述 检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行、每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子。 0 1 2 3 4 5 6 ------------------------- 1 | | O | | | | | ------------------------- 2...

weixin_30539625的博客 402

四皇后(递归解法)

上次写了皇后问题,发现网上有递归解法,于是自己写写,发现问题还是不少,花了不少功夫(linux java环境出错……) package test.demo; public class Eight { public static void ...

u014493323的博客 1660

mac scala安装

scala mac scala-2.12.1

tony的专栏 3181

在win上开发scala所遇到的坑

原来,自己的项目一直都是在Linux的上面维护的,可是最近由于要进行项目的变更,说白了,自己想要在win的环境下编译spark程序,上面一篇文章有介绍spark的项目在win上面安装的过程,此时,我们来介绍一下我们所踩过的坑。 例如spark1.6.0是基于scala2.10.x的,如果用intellj创建基于scala2.11.x的项目,打包出来的jar包,用spark-submit运行spa

热爱我的热爱 723

配置scala时遇到的问题

因为以后实验室做项目需要使用spark,所以先学习scala这门语言。在配置的时候java jdk的版本和scala的版本需要对应。这个在scala的官网上面有说明,个人建议从适配的最低版本开始尝试,我自己才开始使用的是scala-2.10.7+java1.9,因为Java是很久之前安装的就懒得去换了。我试了好几个scala的版本才运行成功。。。 ...

stan1111的博客 792

使用scala时遇到到问题

一、在使用IDEA+maven+scala时遇到编译问题 Error:scalac: Error: org.jetbrains.jps.incremental.scala.remote.ServerException 编译时报错: 运行时报错: 解决的办法:更改scala版本 更改前: 更改后: 转载于:https://www.cnblogs.com/chenxyBlog/p/82422...

weixin_34292959的博客 267

java实现八皇后以及n皇后问题详解

今天遇到一个非常有意思的问题就是八皇后问题 ,本人是一名菜鸟所以被难到了;进过学习以及自己琢磨研究出来一套解决方案但是时间复杂度有点高 希望各位大佬帮忙看看有办法解决吗 或者我这有什么错请指出来谢谢 //八皇后问题 /* 在一个8*8的棋盘上放置8个皇后,不允许任何两个皇后在棋盘的同一行、同一列和同一对角线上。 1) 对8 x 8的二维数组上的某点a[i][j](0<=i,j&l...

rentian1的博客 1045

Spark的原理和部署(一),local

参考书籍:Hadoop  Spark大数据巨量分析与机器学习   林大贵spark的cluster模式架构图,其中:DriverProgram就是程序员所设计的Spark程序,在Spark程序中必须定义sparkcontext,他是开发Spark应用程序的入口。SparkContext通过Cluster Manager管理整个集群,集群中包含多个worker节点,每个工作节点都有executer负...

qq_35710240的博客 572
上一篇: Sun的JavaFX前景不容乐观
下一篇: JSR 308:Java语言复杂度在恣意增长?
JavaSxy
博客等级 码龄21年 1粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值