Service Computing Frontier Technology Experiment

news2024/11/19 17:25:28

任务说明

实验算法 

空间数据索引RTree(R树)完全解析及Java实现 - 佳佳牛 - 博客园 (cnblogs.com)

SFS 

  1. 打开堆文件 t相当于一个指针 当指针指到不为空的时候 如果窗口未被占用那么 如果窗口是满的话那么代表完成 如果窗口没有满的话 把他加到窗口上,并执行如下的操作 打开一个新的文件并把它写入新的文件 如果下一个文件不是空的话 那么就写入一个新的文件 直到新文件的窗口满了

  2. 把堆文件释放 关闭 并把新的窗口覆盖掉原来的窗口

  3. 清空窗口

算法图解

将海量数据以堆文件的形式输入(input) 注意 这里的堆和我们的数据结构的堆不是很一样 这个堆的特点是后边的元素不会对前面的元素产生支配关系,window可以认为是内存人为指定的一个空间,输入之前先判断数据是不是满了 如果满了将后方的所有文件输入到一个新堆secondpass中 输出window并且把如果数据没有被支配那么输入到window中

 BBS

 将S置为空 将D所有的入口全都插入堆, 将最大/最小元素移动 如果被某些节点占用 那么将节点移动如果节点没有被占用如果他是一个立即入口那么 对于每一个孩子节点 如果没有被占用将他插入 如果是一个数据节点并且被占用也插入。

生成数据集

查看帮助

cat INSTALL
基本安装
==================
简单地说,shell命令`/配置;制作进行安装
配置、生成和安装此程序包。以下更详细的说明是通用的;有关此软件包的特定说明,请参阅“自述”文件。
“configure”shell脚本试图猜测编译过程中使用的各种系统相关变量的正确值。它使用这些值在包的每个目录中创建一个“Makefile”。它还可以创建一个或多个包含系统相关定义的“.h”文件。最后,它创建了一个shell脚本“config.status”,您可以在将来运行该脚本来重新创建当前配置,以及一个包含编译器输出的文件“config.log”(主要用于调试“configure”)。
它还可以使用一个可选文件(通常称为“config.cache”,并使用“--cache file=config.cache”或简单的“-C”启用)来保存测试结果,以加快重新配置。默认情况下会禁用缓存,以防止意外使用过时的缓存文件时出现问题。
如果您需要做一些不寻常的事情来编译包,请尝试弄清楚“configure”如何检查是否要这样做,并将差异或说明邮寄到“README”中给出的地址,以便在下一个版本中考虑它们。如果您正在使用缓存,并且在某个时刻“config.cache”包含您不想保留的结果,则可以删除或编辑它。
文件“configure.ac”(或“configure.in”)用于由名为“autoconf”的程序创建“configure”。如果要更改“configure.ac”或使用较新版本的“autoconf”重新生成“configure”,则需要使用“configure.ac”。
编译此包的最简单方法是:
1.“cd”到包含包的源代码和类型的目录
`/configure’为您的系统配置程序包。
运行“configure”可能需要一段时间。跑步时,它会打印
一些消息告诉它正在检查哪些功能。
2.键入“make”以编译包。
3.(可选)键入“make-check”以运行附带的任何自检
包裹。
4.键入“make-install”以安装程序和任何数据文件,以及
文档
5.您可以从
通过键入“makeclean”来选择源代码目录。还要删除
创建了“configure”的文件(这样您就可以为
另一种计算机),键入“makedistclean”。有
也是一个“让维护者干净”的目标,但这主要是为了
为软件包的开发人员。如果你使用它,你可能需要
各种其他程序,以便重新生成附带的文件
随着分布。
6.通常,您也可以键入“make-uninstall”来删除已安装的
文件。
编译器和选项
=====================
有些系统需要特殊的选项来编译或链接
`configure”脚本不知道。运行`/为配置--help'
一些相关环境变量的详细信息。
您可以为配置参数提供“configure”初始值
通过在命令行或环境中设置变量。在这里
是一个例子:
./configure CC=c99 CFLAGS=-g LIBS=-lposix
*注意定义变量::,了解更多详细信息。
为多种体系结构编译
====================================
./configure      
make
make install
如果权限不够加上sudo试试

 权限不够 sudo来凑 正常的情况如下图所示

 调整窗口大小 进入src文件夹

运行./randataset

 如果不好使的话

>>表示写追加写入 >表示写覆盖

 接下来 安心写代码

BBS算法

支配部分

 

def checkDomination(a, b, col_num)->int:
        above = 0
        equal = 0
        below = 0
        for i in range(col_num):
            if a[i] == b[i]:
                equal += 1
            elif a[i] < b[i]:
                below += 1
            else:
                above += 1
        if above >= 1 and above + equal == col_num:
            return 1
        elif below >= 1 and below + equal == col_num:
            return -1
        else:
            return 0

测试时间原理

这个测试就是说要找到一个没有依赖关系的集合,当集合输入满的时候就输出这个window本题,想要证明输出查找的时间和正相关或者负相关有关也和数据集合的大小有关 

 完整代码

import pandas as pd
import time
def checkDomination(a, b, col_num)->int:
        above = 0
        equal = 0
        below = 0
        for i in range(col_num):
            if a[i] == b[i]:
                equal += 1
            elif a[i] < b[i]:
                below += 1
            else:
                above += 1
        if above >= 1 and above + equal == col_num:
            return 1
        elif below >= 1 and below + equal == col_num:
            return -1
        else:
            return 0

def bnl(data: pd.DataFrame) -> pd.DataFrame:
    mWindow = []
    ##生成一个空的二维表
    rows = data
    rowNum = data.shape[1]
    colNum = data.shape[0]
    for i in range(rowNum):                     ##得到数组第i行数据
        currentRow = rows[i]
        if len(mWindow) == 0:                   ## 如果windows是空 则返回
            mWindow.append(currentRow)
            continue
        continueFlag = False
        for windowitem in mWindow:
            domination_flag = checkDomination(currentRow, windowitem, colNum)
            ## 如果当前行被某个窗口元素支配,那么当前行一定不在窗口里,跳过
            if (domination_flag == -1):
                continueFlag = True
                break;
            ## 如果某个窗口元素被当前行支配,那么从窗口中删除该被支配的元素,随后势必会将当前行加入窗口(如若不然窗口中必定存在两个元素,其中一个支配另一个)
            elif(domination_flag == 1):
                mWindow.remove(windowitem)
        if not continueFlag:
            mWindow.append(currentRow)
    return mWindow

def sfs(data: pd.DataFrame) -> pd.DataFrame:
    ...

dates = pd.read_csv('10K_independent.txt',header=None) # 获取数据
start = time.time()
tyc = bnl(dates)
end = time.time()
print('run time: %s second\n'%(end-start))

‍⁢⁤​​‬‍‍‬⁢⁤⁢‍⁤‍‬⁢⁣‬‍‍⁤​⁢⁤‌‌‍‌⁤⁢‬​‌‬​‬​⁤⁡⁢⁤‌‌实验 - 飞书云文档 (feishu.cn) 

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

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

相关文章

k8s 第一篇 基础知识

一 k8s 1.1 概念 k8s 是一个能让应用部署到容器中&#xff0c;实现自动部署和管理更加高效 自能化的平台。 也就是说通过k8s&#xff0c;能够进行应用的自动化部署和扩容。 1.2 集群的架构流程 1.3 k8s的核心概念 1.4 k8s 集群规划 从第6集开始看

【分立元件】理解电阻

如果强行将某电压加在电子器件上&#xff0c;那么器件上被迫流过的电流是不可控的&#xff0c;电流具体是多少&#xff0c;是由器件本身的性质决定的。 比如同样的电压加载在导体和绝缘体两端&#xff0c;那么一般流过导体的电流会是大于流过绝缘体的。但要是超高电压下绝缘体…

单点登录SSO==MAXKEY

1-下载安装包安装启动 2-打开教程&#xff0c;里面说的很详细了 3- 测试 不想从这点进去也可以直接匿名打开个窗口直接访问 http://oauth.demo.maxkey.top:9521/demo-oauth/oauth20index.jsp 也会跳转到登录页面&#xff0c;输入账号密码后登录成功 乱输密码的话登录不成功还…

【算法设计与分析】素数测试问题——设计一个拉斯维加斯算法,对于给定的正整数,判断其是否为素数。

目录 一、问题描述二、分析三、运行结果四、代码 一、问题描述 试设计一个素数测试的偏真蒙特卡罗算法&#xff0c;对于测试的整数n&#xff0c;所述算法是一个关于logn的多项式时间算法。结合教材中素数测试的偏假蒙特卡罗算法&#xff0c;设计一个素数测试的拉斯维加斯算法。…

盛最多水的容器(力扣)双指针 JAVA

给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明&#xff1a;你不能倾斜容器。 输入&…

Tomcat安装配置及其出错的解决方法

文章目录 一、安装二、进行配置三、解决问题四、验证 一、安装 官网链接: https://tomcat.apache.org/ 1.选择 A r c h i v e s \color{red}{Archives} Archives 2.选择 T o m c a t \color{red}{Tomcat} Tomcat版本 3.在对应的版本中选择相对应的小版本 点击 b i n \color…

海盗船DDR5版本号VER命名规则

从华硕、技嘉、微星的内存QVL中可总结出如下规律 海盗船DDR5版本号命名规则 第一位数字 颗粒厂商 第二位数字 对应产品类型 第三位数字 DIE数 3 美光 01 A 4 三星 43 传统内存 02 B 5 海力士 53 非传统内存 03 C 04 D 05 E 8 …

JAVA线程池分析实现

1、定义线程池 /*** 使用给定的初始参数创建新的 ThreadPoolExecutor对象&#xff0c;就创建了一个线程池* param corePoolSize - 要保留在池中的线程数&#xff0c;即使它们处于空闲状态&#xff0c;若果allowCoreThreadTimeOut设置为ture&#xff0c;那么核心线程在keepAliv…

整理——xilinx FPGA 在线升级

一&#xff1a;xilinx FPGA 在线升级方案&#xff1a;&#xff08;系统搭建&#xff1a;MicroBlaze软核处理器&#xff0c;uart控制器&#xff0c;Axi-lite-user用户通信接口&#xff0c;MIG DDR3控制器&#xff0c;中断控制器等&#xff0c;以太网控制器&#xff09; 1.跑一个…

C#开发的OpenRA游戏之建造物品的窗口10

C#开发的OpenRA游戏之建造物品的窗口10 前面已经分析完成建造物品的过程,从物品进入队列,直到物品按时间进行生产完成。那么生产完成之后,又是怎么样放置到游戏的地图里面的呢?本文就来分析这个问题。 前面可以看到,当物品建造完成时,会在右边的面板上显示建造完成: 在…

类 模板 已经声明为非类 模板

类 模板 已经声明为非类 模板 解决方案 原因是在当前包下&#xff0c;已经定义了AA类 解决方案 更改模板类AA的类名

爬虫入门05——requests中的post请求

爬虫入门05——requests中的post请求 以百度翻译为例&#xff0c;我们如何输入内容后获取翻译后的结果呢 打开百度翻译的界面 右键单击后选择检查 点击网络 在翻译的框内输入内容&#xff0c;就以输入“你好”为例&#xff0c; 点击sug&#xff0c;点击标头&#xff0c…

Linux 文件系统

文章目录 一、设备专用文件&#xff08;设备文件&#xff09;设备 ID 二、磁盘与分区1. 磁盘驱动器2. 磁盘分区 三、文件系统四、i-nodeext2 中的 i-node 与数据块指针 五、虚拟文件系统&#xff08;VFS&#xff09;六、日志文件系统七、单根目录层级与挂载点 一、设备专用文件…

aidl原理

aidl 流程 为了方便理解&#xff0c;先将binder看做是一个黑盒子 aidl的流程图如下 demo连接添加链接描述 Androidstudio 会帮我们生成emotionAidlService&#xff0c;具体目录在n\build\generated\aidl_source_output_dir\debug\out\com\example\emotion\emotionAidlServic…

swiftUI和swift的区别

概述 SwiftUI是苹果公司推出的一种用于构建iOS、macOS、watchOS和tvOS应用程序界面的框架。它是基于Swift编程语言开发的&#xff0c;旨在简化UI开发过程并提供实时预览功能&#xff0c;使开发人员可以更快地构建出漂亮的应用程序界面。 Swift是苹果公司推出的一种面向对象的…

【QT】混合UI设计

虽然利用Designer和代码的设计方式都可以开发GUI&#xff0c;但是毫无疑问的是最有效的开发方式是利用两者进行混合开发。 下面这个实验例子来自《QT5.9 C开发指南》&#xff0c;我做了小部分修改&#xff0c;最终效果是这样&#xff1a; 图标导入 这次我们要开发的是一个有工…

AprilTag码估算平面法向量+相机标定

由于本人部分原创博客发布在古月居论坛&#xff0c;详细内容点击链接跳转&#xff1a; 1. AprilTag探索和原理分析 2. 相机标定&#xff0c;基于AprilTag估算平面法向量

web安全php基础_php常量及可变变量(魔术变量)

常量 php中常量是一个简单值的标识符。该值在脚本中不能改变。 一个常量由英文字母、下划线、和数字组成,但数字不能作为首字母出现。 (常量名不需要加 $ 修饰符)。 常量有两点需要特别注意的地方 常量在整个脚本中都可以使用。常量值被定义后&#xff0c;在脚本的其他任何…

企业级CDP数据工程实践(一):建设中的最佳实践

大家好&#xff0c;许久未见&#xff0c;我是云祁&#xff5e; 今天想和大家分享下 企业级CDP项目 建设中的数据工程实践。 在很多情况下&#xff0c;大家可能会将数据工程与ETL的过程画上等号&#xff0c;但实际上ETL只是数据工程的一部分&#xff0c;其工作量通常仅占整个数据…

I.MX6ULL_Linux_驱动篇(40)异步通知

在前面使用阻塞或者非阻塞的方式来读取驱动中按键值都是应用程序主动读取的&#xff0c;对于非阻塞方式来说还需要应用程序通过 poll 函数不断的轮询。最好的方式就是驱动程序能主动向应用程序发出通知&#xff0c;报告自己可以访问&#xff0c;然后应用程序在从驱动程序中读取…