#李宇春[超话]#
演唱会后遗症之《开过光的优越感》

A:她最近好高兴啊 ,是因为见了我们嘛?
B:肯定是。
C:肯定是!
B:我觉得春春也是人来疯那种型,人越多越开心哈哈哈哈哈嗝
A:她开心我就更开心了~ 哦啦啦[打call][打call]
C:我是让她开心的一份子,虽然我不在现场,我也好开心!!!
D:那你怎么让她开心?
E:不在的不要说话,我们都开过光了,和你不一样(傲娇脸.jpg)

(图源见水印 侵删)

遍历排列的一个简洁的程序算法

以前遍历排列都是用数组,再用循环去加减里面的元素,还得排除重复的。程序比较麻烦,显得比较乱。

最近在搞拉丁方需要遍历排列,思考有不有什么比较优雅一点的算法可以直接得到所有需要的排列呢?

想到一个排列计数1-n!到排列的一个一一对应的简洁的程序算法,这样程序就比较优雅了。

n皇后问题的Python代码:

from math import *
def check(x,n):

for i in range(1,n):

for j in range(i):

if abs(x[i]-x[j]) == i-j:

return i

return 0
def queen(n):

allnum=factorial(n)

num=0

x=[0]*n
#

for i in range(allnum):

i=0

while i< allnum:

xx=i

for j in range(n):

yy=factorial(n-1-j)

x[j]=int(xx/yy)

xx=xx%yy

y=list(range(n))

for j in range(n):

x[j]=y.pop(x[j])

j=check(x,n)

if j==0:

num+=1


i+=1

else:

i+=factorial(n-j-1)

print("\r\nn=%d num=%d"%(n,num))
queen(10)

n皇后问题的Julia代码:
#queen.jl
##
# Copyright by yuange 2023.5.30

function check(x,n)
for i in 2:n

for j in 1:i-1

if abs(x[i]-x[j])==(i-j) return i end

end
end
return 0


end

function queen(n)

x=zeros(Int,n)

allnum=factorial(BigInt(n))

num=0


i=0

while i

xx=i

for j in 1:n

yy=factorial(BigInt(n-j))

x[j]=div(xx,yy)

xx=xx%yy

end

y=zeros(Int,n)

y[1:n]=1:n

for j in 1:n

x[j]=popat!(y,x[j]+1)

end


j=check(x,n)


if j==0

num+=1

i+=1

else


i+=factorial(BigInt(n-j))

end

end

print("\r\nn=$n,num=$num\r\n")
end

queen(10)

校验算法结果和以下结果没有问题
N皇后问题解的个数
n

solution(n)
1

1
2

0
3

0
4

2
5

10
6

4
7

40
8

92
9

352
10

724
11

2680
12

14200
13

73712
14

365596
15

2279184
16

14772512
17

95815104
18

666090624
19

4968057848
20

39029188884
21

314666222712
22

2691008701644
23

24233937684440
24

227514171973736
25

2207893435808352

注意Python和Julia等语言for循环里不接受改变循环变量(还是我没找到方法?),可以用while等代替,这是和C语言系的一个比较大的差异。

for j in range(n):

yy=factorial(n-1-j)

x[j]=int(xx/yy)

xx=xx%yy

y=list(range(n))

for j in range(n):

x[j]=y.pop(x[j])

这段代码一重循环就把排列计数0到n!-1的排列计数xx转换成一个0到n-1的排列数组了。程序只要遍历xx就可以,这样程序一看就结构比较简单。

一般这样的问题,代码要不用递归调用要不就用动态的循环管理。递归调用程序结构简单一些,但是递归调用开销大,其实递归调用本质还是等于多重循环。动态循环管理开销小,但是程序写起来有点乱,程序结构不太好。

这个算法直接排列计数和排列一一对应,程序结构就很简洁。唯一不是太好的地方就是后面的转换如果用数组pop操作代码是简洁,但是这种操作是相对比较耗费时间的。这个后面的用数组pop转换看怎么改用自己的比较简洁的代码。
还好如果不是过分需要效率的时候,这算法就算用数组的pop也还算能接受。

因为大量排列是不符合的,可以x[j]第二项生成就开始就检测,这样会减少很多时间。

这文章主要关注点不是在这里。

#法考[超话]##23年商经法每日1题#

第18天 【单选】

某有限责任公司股东甲、乙、丙的持股比例分别为9%、9%和82%。公司未设监事会,乙任监事;丙任执行董事,甲发现丙将公司资产擅自低于市价转让给丙妻,严重损害公司利益。遂书面请求乙对丙提起诉讼。乙碍于情面,未提起诉讼。甲的下列行为中,符合公司法律制度规定的是?

A.以自己的名义对丙提起诉讼,要求其赔偿公司损失

B.提议召开临时股东会,要求丙对相关事项作出说明

C.请求公司以合理价格收购其股权,从而退出公司

D.以公司监督机构失灵、公司和股东利益受到严重损害为由,请求人民法院解散公司


发布     👍 0 举报 写留言 🖊   
✋热门推荐
  • #任嘉伦[超话]#rjl#任嘉伦请君##任嘉伦陆炎#陆炎,如果我在一千年前及时,我绝对不会放过你,现在正是你来陪我的时候|电视剧请君|任嘉伦请君|任嘉伦陆炎|
  • 考虑到此次巡回的案件中有三起案件的当事人都是土族,用本民族语言交流更有助于化解矛盾纠纷,也更能让当事人愿意接受法庭的调解,法庭早早联系了土族调解员一起开展调解工
  • #日本东京租房子[超话]# 山手线 日暮里 2016年新建#东京买房租房[超话]# 月租金:7.95w/月 免费入住有#日本签证# 初期低 带家具家电 国际审查
  • 愿你淡然而温柔,有“我见青山多妩媚,料青山见我应如是”的自爱,有“纵你阅人何其多,再无一人恰似我”的自信,然后去奔赴属于自己的滚烫星河。愿你淡然而温柔,有“我见
  • 比如丁卯 癸丑 戊辰…搞笑一家人里的敏浩,可能他自己不喜欢吧,但他确实长的好,显嫩,很多女生确实也喜欢这种的。丁火吧,不管怎么配,都很难掩饰本身的端正感,甜且正
  •   日子就这样 清浅着 没有波澜 回眸处 仿佛在说 无论是相思还是重逢 都是美好的温暖所在 我只想安静的坐在这里 呆在阳台上 写一笺小字 想必 你也能隔着天涯
  • ซิว ลอ แซ จิน จิน ซิม, ตี ยก เส็ก จู คู เนาปวงอสูรสละเสียได้โดยสิ้นซึ่งโทสะจิต น
  • 而是你心里的那段释怀和格局,只要你的内心不慌乱,连世界都难影响你——《人民日报》大家下午好呀[太阳]#摩登兄弟 传递正能量#|#凝聚V力量# 祖国是我心中的灯塔
  • 04:认同期当你顺利走完前面三个阶段,成功的消弭了矛盾,并且将成果展示给了对方,那么对方自然就会认同你,此时,你离复合也就一步之遥了。自从“楼长+志愿者”模式开
  • 《大梦红楼》 第五集 莫失莫忘(7) 聚餐安排在晚上,下午,妈妈就在厨房里准备。甜甜剑看着妈妈的背影,心里忽然思绪万千。他自己也不知道爱情到底是什么东西?帮
  • 入目无别人,四下皆是你你是不灭的星光,日复一日的美梦。生活给的每一份温柔都要小心收藏,憧憬的未来可期,都应该努力去闯。
  • 每年都会提前很多天开始写这个小作文,今年的时间也提前了不少,原因是看到了一篇小记事,里面写“晚安,我的小朋友”这句话就跟“莎莎,你愿意和我一起回兰州吗”一样的戳
  • #Show Love Mart新品推荐# 小马的伴手礼想要收到的你 一下就{哇~好棒呀!拿到手的那一刻,细腻而有质感的触觉,真的不要太爱了~底部选择了真金烫印
  • #SEVENTEEN[超话]##SEVENTEEN出道五周年# #The8徐明浩[超话]#【五周年】东北可爱小精灵的无限之路精灵耳和带着些许口音的韩语是他的标志
  • 2月22日,核桃园镇乐土村的一块麦田地头上,村民王刘全对眼前正在建设的“高标田”充满期待:“以前田间小路一遇雨雪天,庄稼都拉不出来,现在沟、路、渠、井、闸、涵、
  • 2017 那时尚未开庭 我本以为最坏也就是刘鑫不知道 然后真的跑回去换裤子 不开门...时隔四年...看到来龙去脉...我惊了所以她是意识到了的 却从来没有对江
  • 由于某杂志[笑而不语],喜欢自然,昆虫和动物,最近正在研究,也愿意在这上面花时间;喜欢石头,也爱收集各种石头,收集了两箱标本。每去一个地方就喜欢收集当地的硬币,
  • 就是从这一次开始吧…即使对工作室有再多不满,我都不愿再去表达(发泄)了。那时候真的很难过…突然就想到了15年“古月哥欠十一周年”时,他给粉丝录的VCR里说做他的
  • 太妙了!第五张是收拾完的我,疲惫累累[抓狂]) 你知道有的时候吧 人就是那么幼稚无聊 看到这个浅玩了一下 前几次喜欢的人和暗恋的人老点到郭浩然老师 我真的会无语
  • 阿弥陀经 如是我闻。一时佛在舍卫国,祇树给孤独园。与大比丘僧,千二百五十人俱,皆是大阿罗汉,众所知识:长老舍利弗、摩诃目犍连、摩诃迦叶、摩诃迦旃延、摩诃俱絺罗、