试题E:蜂巢 ——蓝桥杯第十三届省赛Java 大学A组

news2024/11/15 11:40:50

试题E:蜂巢

在这里插入图片描述

解析

很明显的一道坐标计算问题,只是通过看似比较复杂的描述而已。
题目定义了一种行走方向,大概就是一共六种行走方向,如果以o为原点,建立坐标系,那么方向03就是x轴。其他方向为分力即可,如1就是(-0.5,0.5)2就是(0.5,0.5),然后计算步数就好了。

  • 模拟行走路径,然后拆分为我们定义的坐标
  • 通过两点坐标,计算步数
    f ( w , x , y , z ) = a b s ( w − x ) + a b s ( y − z ) f(w,x,y,z)=abs(w-x) + abs(y-z) f(w,x,y,z)=abs(wx)+abs(yz)

证明:
对于正六边形而言,每个夹角都为120°,那么如图:
在这里插入图片描述
连接三个正六边形中心的线段长都一样并且设为1则边际线切分为两半为0.5,刚好距离计算从黄到灰为0.5+0.5=1

代码

package com.maggot.maggotscheduler.bootstrap.utils.lanqiaobei13;

/**
 * @author huangyichun
 */
public class E蜂巢 {
    public static void main(String[] args) {
        XY B = getxy(0, 5, 3);
        XY C = getxy(2, 3, 2);
        System.out.println(B);
        System.out.println(C);
        System.out.println("B.getFarFrom(C) = " + B.getFarFrom(C));
    }


    public static XY getxy(int d, double p, double q) {
        switch (d) {
            case 0:
                return new XY(-p + q / 2, 0 + q / 2);
            case 1:
                return new XY(-p / 2 + q, p / 2);
            case 2:
                return new XY(p / 2 + q / 2, p / 2 - q / 2);
            case 3:
                return new XY(p - q / 2, 0 - q / 2);
            case 4:
                return new XY(p / 2 - q, -p / 2);
            case 5:
                return new XY(-p / 2 - q / 2, -p / 2 + q / 2);
            default:
                return new XY(0, 0);
        }
    }


    private static class XY {
        double x;
        double y;

        public XY(double x, double y) {
            this.x = x;
            this.y = y;
        }

        public double getFarFrom(XY other) {
            return Math.abs(x - other.x) + Math.abs(y - other.y);
        }

        @Override
        public String toString() {
            return "XY{" +
                    "x=" + x +
                    ", y=" + y +
                    '}';
        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/410930.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【微信小程序】免费的高德地图api——获取天气(全过程)

介绍 这里是小编成长之路的历程,也是小编的学习之路。希望和各位大佬们一起成长! 以下为小编最喜欢的两句话: 要有最朴素的生活和最遥远的梦想,即使明天天寒地冻,山高水远,路远马亡。 一个人为什么要努力&a…

硬件工程师需要掌握的PCB设计常用知识点

一个优秀的硬件工程师设计的产品一定是既满足设计需求又满足生产工艺的,某个方面有瑕疵都不能算是一次完美的产品设计。规范产品的电路设计,工艺设计,PCB设计的相关工艺参数,使得生产出来的实物产品满足可生产性、可测试性、可维修…

Windows 安装 Go1.20.3 顺便了解 go env 环境变量

文章目录1.下载与安装2.GOROOT3.Go 的包管理3.1 GOPATH 模式3.2 Go Modules 模式4.GOPATH5.GO111MODULE6.GOPROXY7.GOSUMDB8.GONOPROXY/GONOSUMDB/GOPRIVATE9.GOMODCACHE10.GOCACHE11.GOENV12.GOBIN13.参考资料1.下载与安装 参考文章:Golang V1.19.1 安装配置 (win…

Vue3带来了什么

目录性能方面的优化更好的TypeScript集成用于处理大规模用例的新API分层内部模块CompositionAPI更多RFC提供的两个新功能proxy代替defineProperty双向绑定性能方面的优化 首先是相对Vue2的一些性能改进: 通过摇树(减轻了多达41%的资源大小)初始渲染&am…

Hadoop安装Hbase启动失败报错解决方法

先进入hbase文件目录里看日志文件看看报什么错再具体解决: vim /opt/module/hbase-1.3.3/logs/hbase-root-master-hadoop-single.log 1.报错org.apache.hadoop.security.AccessControlException: Permission denied: user异常解决方法 1、第一种 在hdfs的配置文件…

3.2 二维随机变量的边缘分布

思维导图: 学习目标: 要学习二维随机变量的边缘分布,我可能会按照以下步骤进行学习: 理解二维随机变量的概念和表示方法,包括联合分布函数和联合分布律等概念。理解二维随机变量的边缘分布的概念和意义,即…

2023年4月份北京/广州/深圳DAMA-CDGP数据治理专家证书收益

DAMA认证为数据管理专业人士提供职业目标晋升规划,彰显了职业发展里程碑及发展阶梯定义,帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力,促进开展工作实践应用及实际问题解决,形成企业所需的新数字经济下的核心职业…

Mysql的学习与巩固:一条SQL查询语句是如何执行的?

前提 我们经常说,看一个事儿千万不要直接陷入细节里,你应该先鸟瞰其全貌,这样能够帮助你从高维度理解问题。同样,对于MySQL的学习也是这样。平时我们使用数据库,看到的通常都是一个整体。比如,你有个最简单…

【华为机试真题详解JAVA实现】—MP3光标位置

目录 一、题目描述 二、解题代码 一、题目描述 MP3 Player因为屏幕较小,显示歌曲列表的时候每屏只能显示几首歌曲,用户要通过上下键才能浏览所有的歌曲。为了简化处理,假设每屏只能显示4首歌曲,光标初始的位置为第1首歌。 现在要实现通过上下键控制光标移动来浏览歌曲列…

[2022 SP] Copy, Right? 深度学习模型版权保护的测试框架

Copy, Right? A Testing Framework for Copyright Protection of Deep Learning Models | IEEE Conference Publication | IEEE Xplore 摘要 深度学习模型,尤其是那些大规模和高性能的模型,训练成本可能非常高,需要大量的数据和计算资源。…

DDS介绍

今天我们一起来了解一个中间件协议框架DDS,它的全称是Data Distribution Service,是一套通信协议和API标准,提供了以数据为中心的连接服务,基于发布者-订阅者模型,提供了介于操作系统和应用程序之间的功能,…

【数据结构】二叉树性质巩固

🚀write in front🚀 📜所属专栏:初阶数据结构 🛰️博客主页:睿睿的博客主页 🛰️代码仓库:🎉VS2022_C语言仓库 🎡您的点赞、关注、收藏、评论,是对…

Shell基础了解

一.Shell简介 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。 Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。 Ken…

JavaScript【二】JavaScript中的流程控制

文章目录🌟前言🌟流程控制🌟选择结构(条件判断)🌟if分支🌟 switch 分支(多选一的条件判断)🌟循环结构🌟for🌟while🌟 do...while🌟区别🌟break和c…

从元宇宙婚礼和元宇宙游戏看元宇宙的“史前时代”

元宇宙,正在从科幻走进现实——确切地说,是走进现实中的虚拟世界。这一切,离不开强有力的高科技及其产品化基础设施设备的支撑。而且,元宇宙不会单由哪一家公司建成,也不会一蹴而就,它需要多方参与和一定的…

外包干了三年,算是废了...

先说一下自己的情况。大专生,19年通过校招进入湖南某软件公司,干了接近3年的测试,今年年上旬,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了三年&#xff0c…

C语言基础——数组与字符串

文章目录一、数组1.数组的意义2.数组类型如何表示3.数组变量的定义3.1求数组类型大小3.2数组的长度4.数组中成员的使用4.1数组的下标4.2如何表示数组成员5.常见问题6.冒泡排序7.字符数组 字符类型数组7.1定义7.2物联网 -- 服务器/web -- 上层使用大多是字符串。7.3定义1个字符型…

javaweb考研辅导网站交流

设计内容: 前台技术:html/css/javascript。 后台技术:java/jspServlet/struts2框架。 数据库技术:mysql。 具体功能模块主要包括: 1、考研浅谈:专业不同的热心的考研成功者能够发布不同科目的复习心得等。…

JavaScript 基础入门速成下篇

JavaScript 高级 数组及操作方法 数组,即一组数据的集合,JavaScript中,数组里面的数据可以时不同类型的; 定义数组的方法 1. 对象实例创建 new Array 2. 直接量创建 // 对象实例创建 var arr new Array(1,2,3)// 直接量…

4.11每日一题

翀某说:C语言快忘了,决定每日一练,周末超难度训练 当然了翀某说,python自学中,所以每道题除了C语言之外,看看python能不能写 题目给定一个整数数组 nums 和一个整数目标值 target,请你在该数组…