对角线-link如何解决如下矩阵生成难题?注意一定要用link实现。

问题描述

link如何解决如下矩阵生成难题?注意一定要用link实现。

将1~N*N放入一个N*N的矩阵,要求矩阵每行每列以及对角线的和相等。请问怎么实现?注意一定要用link实现。

解决方案

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = 3;
            var result = solve(n, new int[] { }).First();
            for (int i = 0; i < n; i++)
            {
                Console.WriteLine(string.Join("t", result.Skip(i * n).Take(n).Select(x => x.ToString())));
            }
        }

        static IEnumerable<int[]> solve(int n, int[] current)
        {
            if (current.Length == n * n)
            {
                yield return current;
                yield break;
            }
            foreach (int item in Enumerable.Range(1, n * n).Where(x => !current.Contains(x) && foo(n, current, x)))
            {
                foreach (var i in solve(n, current.Concat(new int[] { item }).ToArray()))
                    yield return i;
            }
        }

        static bool foo(int n, int[] current, int next)
        {
            int[] arr = current.Concat(new int[] { next }).Concat(Enumerable.Repeat(0, n * n - current.Length - 1)).ToArray();
            int sum3 = 0, sum4 = 0;
            for (int i = 0; i < n; i++)
            {
                int sum1 = 0, sum2 = 0;
                for (int j = 0; j < n; j++)
                {
                    sum1 += arr[i * n + j];
                    sum2 += arr[j * n + i];
                }
                if (new int[] { sum1, sum2 }.Any(x => x > n * n / 2 + 1)) return false;
                sum3 += arr[i * n + i];
                sum4 += arr[i * n + (n - i)];
            }
            if (new int[] { sum3, sum4 }.Any(x => x > n * n / 2 + 1)) return false;
            return true;
        }
    }
}

时间: 2024-12-03 00:53:51

对角线-link如何解决如下矩阵生成难题?注意一定要用link实现。的相关文章

link如何解决如下矩阵生成难题

问题描述 link如何解决如下矩阵生成难题 将1~N*N放入一个N*N的矩阵,要求矩阵每行每列以及对角线的和相等.请问怎么实现? 解决方案 解决方案二: 这是算法题, 和LINQ没有关系 解决方案三: using System; using System.Collections.Generic; using System.Text; namespace MagicMatrix { class Program { int[,] mm; static void Main(string[] args)

link如何解决矩阵转置的问题?

问题描述 link如何解决矩阵转置的问题? link如何解决矩阵转置的问题?用二维数组还是用交错数组比较好? 解决方案 都可以,交错数组简单一些,二维数组需要用Enumerable枚举下 用交错的话,大致代码 var query = data.Select((x, r) =>x.Select((v, c) => new { r, c, v })); var result = query.GroupBy(x => x.c).Select(x => x.Select(y => y

php-求大神帮忙解决一下这个PHP难题

问题描述 求大神帮忙解决一下这个PHP难题 求大神帮忙解决一下这个问题.非常感谢! 就是用PHP实现提取这个页面(http://www.pder.org/f.php)里面每个uin后面的数字,那个数字就是QQ号,并且列出来使用到新的连接进去. 比如把那个数字使用到这个连接里面 http://q.qlogo.cn/headimg_dl?bs=qq&dst_uin=这里就是QQ号&src_uin=SW&fid=blog&spec=100 并且排列出来. 求大神解决,谢谢,万分感

通过合理配置来解决交换机网络环路难题

合理配置解决交换机网络环路难题,在判断交换机网络环路的思路上,本文从日志信息和启用状态方面对交换机网络环路问题做一个初步的分析,然后合理配置交换机,最终解决交换机网络环路问题. 在规模较大的局域网网络中,时常会遇到网络通道被严重堵塞的现象,造成这种故障现象的原因有很多,例如网络遭遇病毒攻击.网络设备发生硬件损坏.网络端口出现传输瓶颈等. 不过,从网络堵塞现象发生的统计概率来看,网络中发生过改动或变化的位置最容易发生故障现象,因为频繁改动网络时很容易引发交换机网络环路,而由交换机网络环路引起的网络

用EXCEL解决绩效评分的难题

项目背景: CND公司是知名的品牌汽车销售商,旗下多达30几个4S店,拥有员工近1000人.年底到了,根据公司绩效考办 法,要对一百多名的中层以上干部进行绩效评分,根据评分结果进行年度表彰奖励. 面临的挑战: 1. 数量太多. 根 据绩效考核办法,每一位员工要对其直线上的所有经理及相关部门的经理进行评分.通过简单估算,至少有7000多张评分表,数 量太多,单凭人工无法处理. 2. 评分表逻辑关系复杂. 公司针对不同岗位的经理设计了不同的评分表,哪位经理对应哪 张评分表,需要哪些员工来评分,对应逻

matlab-如何解决这个矩阵问题?

问题描述 如何解决这个矩阵问题? 附带了测试用的matlab代码. A = [0.8 0.25 0.18 0.1; 0.1 0.7 0.12 0.4; 0.1 0.05 0.7 0.2];beta = [0.68 0.40 0.80 0.5; 0.15 0.34 0.35 0.4; 0.45 0.70 0.30 0.5; 1 1 1 1];y = A*beta;% For convenience I use the same y as input.%---------------------Me

SAP借助云计算解决全球商务差旅难题

本文讲的是SAP借助云计算解决全球商务差旅难题,2012年8月13日消息,随着全球商务差旅相关费用和难题的持续增加,企业和商务人士正在寻求可帮助简化端到端流程的有效集成软件.SAP 公司日前宣布与合作伙伴和解决方案供应商开展新合作,增强SAP Travel OnDemand解决方案的可用性,以此作为公司不断扩展的云计算产品组合的一部分. SAP Travel OnDemand旨在支持财务主管和商务差旅人士在遵守企业合规政策的同时,以更快的速度和更低的成本灵活处理端到端差旅流程和费用管理.此前,S

海尔推出的热泵干衣机创新性地解决了这一难题

为保证本次盛会奖项的权威性,所有获奖产品都是在严格的评选标准下,由网友投票.专家考评等多方共同参与评选,最终获奖的创新产品均代表了行业最领先水平.记者从评审团了解到,此次评选设定了技术.性能.环保.使用体验和外观五大核心指标.与以往不同的是,本次评测重点突出了用户体验.专家指出,当下中国正步入消费结构升级期,由生存型逐步向享受型转变.家电核心消费群80.90一代更倾向于购买时尚.智能的产品,并且对品牌.服务.性能表现有更客观的判断,对新技术的接受程度也更高,这为高端智能化家电孕育了庞大的市场需求

今天下午14:00,专家在线解决网站挂马难题

中介交易 SEO诊断淘宝客 站长团购 云主机 技术大厅 网站被挂马现象越来越严重,今天下午14:00,专家在线解决网站挂马难题  请站长们提前加群听课,先加先占位,请大家保持在线状态.谢谢合作.群号:3968171 什么是ARP 地址解析协议(Address Resolution Protocol,ARP)是在仅知道主机的IP地址时确定其物理地址的一种协议.因IPv4和以太网的广泛应用,其主要用作将IP地址翻译为以太网的MAC地址,但其也能在ATM和FDDIIP网络中使用.从IP地址到物理地址的