当前位置: 首页 > news >正文

【算法模板】算竞技巧:Python对拍数据生成

在计算机编程竞赛中,对拍(Testlib)是一种验证程序正确性的方法。它通常用于检查一个程序的输出是否与另一个程序的输出一致,以确保程序的正确性。

对拍程序

【算法模板】算竞技巧:对拍全解_算法竞赛对拍-CSDN博客

#include <iostream>
#include <chrono>int main() {system("g++ std.cpp -o std.exe");system("g++ force.cpp -o force.exe");int cnt = 0;do {std::cout << "Round " << ++cnt << std::endl;system("python data.py > input.txt");clock_t start = clock();system("std.exe < input.txt > sout.txt");clock_t end = clock();std::cout << "std:"<< double(end - start)/ CLOCKS_PER_SEC << "sec" << std::endl;start = clock();system("force.exe < input.txt > fout.txt");end = clock();std::cout << "force:"<< double(end - start)/ CLOCKS_PER_SEC << "sec" << std::endl;} while (system("fc fout.txt sout.txt") == 0);return 0;
}

random模块

Python的random模块提供了生成伪随机数的各种方法。这些方法可以用于生成整数、浮点数、随机选择、打乱顺序等。下面是random模块的一些常用功能函数以及它们的使用方法:

  • random.random()

    生成一个范围在[0.0, 1.0)之间的浮点数。

    # 生成一个随机浮点数
    print(random.random())  # 输出示例:0.37444887175646646
    
  • random.randint(a, b)

    生成一个范围在[a, b]之间的随机整数,包括a和b。

    # 生成一个范围在1到10之间的随机整数
    print(random.randint(1, 10))  # 输出示例:7
    
  • random.uniform(a, b)

    生成一个范围在[a, b]之间的随机浮点数。

    # 生成一个范围在1.5到10.5之间的随机浮点数
    print(random.uniform(1.5, 10.5))  # 输出示例:7.123456789
    
  • random.choice(seq)

    从非空序列seq中随机选择一个元素。

    # 从列表中随机选择一个元素
    print(random.choice([1, 2, 3, 4, 5]))  # 输出示例:3
    
  • random.choices(population, weights=None, k=1)

    population中随机选择k个元素,返回一个列表。可以指定weights进行加权随机选择。

    # 从列表中随机选择3个元素
    print(random.choices([1, 2, 3, 4, 5], k=3))  # 输出示例:[4, 1, 5]# 使用权重进行随机选择
    print(random.choices([1, 2, 3, 4, 5], weights=[10, 1, 1, 1, 1], k=3))  # 输出示例:[1, 1, 4]
    
  • random.sample(population, k)

    population中随机选择k个唯一元素,返回一个列表。

    # 从列表中随机选择3个唯一元素
    print(random.sample([1, 2, 3, 4, 5], k=3))  # 输出示例:[2, 5, 3]
    
  • random.shuffle(seq)

    将序列seq中的元素随机打乱,seq会被原地修改。

    # 随机打乱列表中的元素
    lst = [1, 2, 3, 4, 5]
    random.shuffle(lst)
    print(lst)  # 输出示例:[3, 1, 5, 2, 4]
    
  • random.gauss(mu, sigma)

    生成一个服从高斯分布(正态分布)的随机浮点数,均值为mu,标准差为sigma

    # 生成一个均值为0,标准差为1的高斯分布随机浮点数
    print(random.gauss(0, 1))  # 输出示例:-0.4943560805796826
    
  • random.seed(a=None)

    初始化随机数生成器。a可以是任意可散列的对象。如果省略或为None,则使用系统时间或操作系统提供的随机源。

    # 使用种子进行随机数生成
    random.seed(42)
    print(random.random())  # 输出示例:0.6394267984578837
    
  • random.getrandbits(k)

    生成一个拥有k个随机比特位的整数。

    # 生成一个拥有16个随机比特位的整数
    print(random.getrandbits(16))  # 输出示例:57856
    

整数数组

import randomdef generate_integer_array(n, low=0, high=1000):array = [random.randint(low, high) for _ in range(n)]# 输出数组大小print(n)# 输出数组元素,使用空格分隔print(" ".join(map(str, array)))if __name__ == "__main__":n = random.randint(1, 100)  # 随机生成数组大小generate_integer_array(n)

浮点数数组

import randomdef generate_float_array(n, low=0.0, high=1000.0):array = [random.uniform(low, high) for _ in range(n)]# 输出数组大小print(n)# 输出数组元素,使用空格分隔,并保留两位小数print(" ".join(f"{x:.2f}" for x in array))if __name__ == "__main__":n = random.randint(1, 100)  # 随机生成数组大小generate_float_array(n)

从1到n的排列

import randomdef generate_permutation(n):permutation = list(range(1, n + 1))# 随机打乱排列random.shuffle(permutation)# 输出排列大小print(n)# 输出排列元素,使用空格分隔print(" ".join(map(str, permutation)))if __name__ == "__main__":n = random.randint(1, 100)  # 随机生成排列大小generate_permutation(n)

import randomdef generate_tree(num_nodes):edges = []for i in range(2, num_nodes + 1):u = random.randint(1, i - 1)# 生成从节点u到节点i的边edges.append((u, i))# 输出节点数print(num_nodes)# 输出所有边for u, v in edges:print(u, v)if __name__ == "__main__":num_nodes = random.randint(2, 10)  # 随机生成节点数generate_tree(num_nodes)

无向图

import randomdef generate_undirected_graph(num_nodes, num_edges):edges = set()while len(edges) < num_edges:u = random.randint(1, num_nodes)v = random.randint(1, num_nodes)if u != v:if u > v:u, v = v, u# 确保边(u, v)是唯一的edges.add((u, v))# 输出节点数和边数print(num_nodes, num_edges)# 输出所有边for u, v in edges:print(u, v)if __name__ == "__main__":num_nodes = random.randint(2, 10)  # 随机生成节点数num_edges = random.randint(1, num_nodes * (num_nodes - 1) // 2)  # 随机生成边数generate_undirected_graph(num_nodes, num_edges)

有向图

import randomdef generate_directed_graph(num_nodes, num_edges):edges = set()while len(edges) < num_edges:u = random.randint(1, num_nodes)v = random.randint(1, num_nodes)if u != v:# 确保边(u, v)是唯一的edges.add((u, v))# 输出节点数和边数print(num_nodes, num_edges)# 输出所有边for u, v in edges:print(u, v)if __name__ == "__main__":num_nodes = random.randint(2, 10)  # 随机生成节点数num_edges = random.randint(1, num_nodes * (num_nodes - 1))  # 随机生成边数generate_directed_graph(num_nodes, num_edges)

*函数图像

import tkinter as tk  # 导入tkinter模块以便在Python中创建图形用户界面  def plot_function(x_values, y_values):  # 创建根窗口  root = tk.Tk()  root.title("Function Plotter")  # 设置窗口标题  # 创建一个画布,指定宽度、高度和背景颜色  canvas = tk.Canvas(root, width=400, height=400, bg="white")  canvas.pack()  # 将画布添加到窗口中并显示  # 获取画布的宽度和高度  width = int(canvas['width'])  height = int(canvas['height'])  # 计算x和y值的最小值和最大值,以确定数据范围  x_min, x_max = min(x_values), max(x_values)  y_min, y_max = min(y_values), max(y_values)  # 根据画布的大小和数据范围计算x和y的缩放因子  x_scale = width / (x_max - x_min)  y_scale = height / (y_max - y_min)  # 计算每个点在画布上的位置,并进行缩放  points = [  (  (x - x_min) * x_scale,  # 使用缩放因子转换x坐标  height - (y - y_min) * y_scale  # 使用缩放因子转换y坐标,y坐标需要反转以符合画布的坐标系  )  for x, y in zip(x_values, y_values)  # 将x和y值组合在一起  ]  # 在画布上绘制线条,连接相邻的点  for i in range(len(points) - 1):  canvas.create_line(points[i], points[i + 1], fill="blue")  # 绘制线条,颜色为蓝色  # 进入主事件循环,等待用户操作  root.mainloop()if __name__ == "__main__":x_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]y_values = [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]plot_function(x_values, y_values)

相关文章:

【算法模板】算竞技巧:Python对拍数据生成

在计算机编程竞赛中&#xff0c;对拍&#xff08;Testlib&#xff09;是一种验证程序正确性的方法。它通常用于检查一个程序的输出是否与另一个程序的输出一致&#xff0c;以确保程序的正确性。 对拍程序 【算法模板】算竞技巧&#xff1a;对拍全解_算法竞赛对拍-CSDN博客 #i…...

计算机基本理论与程序运行原理概述

目录 计算机的基本表示方法 计算机的组成 程序运行的原理 指令执行的流水线 编译原理 个人理解 面试题总结 计算机的基本表示方法 计算机系统使用高、低电平来表示逻辑1和0。数据在计算机中的存储、传输和处理均以二进制形式进行。数据通过总线作为电信号进行传输&…...

SpringBoot中的server.context-path

目录 一、问题引入 二、代码片段展示 2.1.接口层 2.2.application.properties 三、问题分析 3.1.server.context-path 作用 3.2.正确展示 四、HTTP请求响应码简介 4.1.响应码参考来源 4.2.源码示例 4.2.1.源码总述 4.2.2.正常情况——2XX: generally "OK&…...

AI绘画绘画 Stable Diffusion ,从零开始轻松变现,AI绘画副业创收指南,一天一个AI帮你赚钱小技巧!

大家好&#xff0c;我是灵魂画师向阳 通过长达几个月的AI绘画Stable Diffusion 系统教程&#xff0c;相信大家已经对AI绘画有了一个大概的认知。最近就有很多粉丝总是问我&#xff0c;AI绘画学会后如何进行变现&#xff0c;或者是做副业呢&#xff1f; 那今天我就分享一些目前…...

阿里云镜像站,提供了各种第三方镜像地址

阿里云提供了各项镜像缓存地址&#xff0c;对于很多国外服务的地址&#xff0c;通过阿里云缓存的地址去下载&#xff0c;速度会非常快。 如下&#xff0c;打开阿里云官方网站&#xff1a; 进入“镜像站”&#xff0c;如下图所示&#xff1a; 有我们常用的 npm、maven、操作系统…...

stm32入门学习11-硬件I2C和MPU

&#xff08;一&#xff09;I2C硬件电路 stm32内部有I2C的硬件电路&#xff0c;我们可以使用stm32的标准库函数来实现I2C&#xff0c;这可以为我们减少对软件资源的占用 I2C硬件电路常用的标准库函数 void I2C_Init(I2C_TypeDef* I2Cx, I2C_InitTypeDef* I2C_InitStruct); /…...

如何在C++、PHP、GO中使用AI生成PPT API接口

在当今快节奏的商业环境中&#xff0c;演示文稿的制作不仅需要快速&#xff0c;还需要具有吸引力和专业性。AI生成PPT API 服务提供了一种创新的解决方案&#xff0c;能够根据用户提供的内容自动生成演示文稿&#xff0c;极大地提高了效率和质量。本文将详细介绍AI生成PPT的优势…...

力扣面试150 逆波兰表达式求值 栈 模拟栈

Problem: 150. 逆波兰表达式求值 &#x1f468;‍&#x1f3eb; 参考题解 class Solution {//纯数组模拟栈实现(推荐) 3 ms 36 MBpublic static int evalRPN(String[] tokens) {int[] numStack new int[tokens.length / 2 1];int index 0;for (String s : tokens) {swit…...

动手学深度学习V2每日笔记(深度卷积神经网络AlexNet)

本文主要参考沐神的视频教程 https://www.bilibili.com/video/BV1h54y1L7oe/spm_id_from333.788.recommend_more_video.0&vd_sourcec7bfc6ce0ea0cbe43aa288ba2713e56d 文档教程 https://zh-v2.d2l.ai/ 本文的主要内容对沐神提供的代码中个人不太理解的内容进行笔记记录&…...

室内定位:紧耦合的学习惯性里程 (TLIO)

a### TLIO论文解读:紧耦合的学习惯性测程 (TLIO) 在惯性测量单元 (IMU) 领域,如何在短时间内精确地估计位置和姿态一直是一个挑战。最近,论文《TLIO: Tight Learned Inertial Odometry》提出了一种创新的方法,通过将深度学习与扩展卡尔曼滤波器 (EKF) 紧密结合,来解决这一…...

【面试之算法篇】寻找二叉树中两个节点的最低公共祖先

题目 给定一个树的根节点root和两个子节点a,b,返回二叉树中两个节点的最低公共祖先。二叉树每个节点的值都是不同的整数 10060 12040 null 4 74和7的最低公共祖先是120,60和40的最低公共祖先是60 思路 两个节点的祖先会有多个,只有是祖先的节点才有可能会是最低公共…...

使用Unity开发编辑系统时复制物体的一些细节问题

首先是复制一个GameObject时组件中的变量内容的复制问题&#xff0c;这个在Unity复制对象时让私有变量也被复制的简单方法这篇博客里面做了说明&#xff0c;但是其实还有一个问题&#xff0c;就是有些时候需要被复制的物体在刚创建出来的时候需要自动执行一些操作&#xff0c;这…...

【C++】模版初阶+STL简介

&#x1f680;个人主页&#xff1a;奋斗的小羊 &#x1f680;所属专栏&#xff1a;C 很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~ 目录 前言&#x1f4a5;1、函数模版&#x1f4a5;1.1 函数模板概念&#x1f4a5;1.2 函数模板格式&#x1f4a5;1…...

Vue3中的toRef和toRefs的区别和用法

刚做了Ref和Reactive区别及使用方法笔记&#xff0c;再来总结一下&#xff0c;toRef 和 toRefs 的作用、用法、区别 1、作用和区别 toRef 和 toRefs 可以用来复制 reactive 里面的属性然后转成 ref&#xff0c;而且它既保留了响应式&#xff0c;也保留了引用&#xff0c;也就…...

【docker快捷部署系列一】docker快速入门,安装docker,解决运行Docker Quickstart Terminal出错

1、docker快速入门 视频链接 知识点概述 docker是轻量级虚拟机image是镜像 相当于虚拟机快照container是容器&#xff0c;相当于运行起来的虚拟机程序Dockerfile 是创建docker镜像的自动化脚本docker-compose 是一个定义和运行多个容器命令的工具&#xff0c;包括运行Docker…...

vulnhub靶机实战_DC-8

一、靶机下载 靶机下载链接汇总&#xff1a;https://download.vulnhub.com/使用搜索功能&#xff0c;搜索dc类型的靶机即可。本次实战使用的靶机是&#xff1a;DC-8系统&#xff1a;Debian下载链接&#xff1a;https://download.vulnhub.com/dc/DC-8.zip 二、靶机启动 下载完…...

如何做到项目真实性优化?保姆级写简历指南第五弹!

大家好&#xff0c;我是程序员鱼皮。做知识分享这些年来&#xff0c;我看过太多简历、也帮忙修改过很多的简历&#xff0c;发现很多同学是完全不会写简历的、会犯很多常见的问题&#xff0c;不能把自己的优势充分展示出来&#xff0c;导致措施了很多面试机会&#xff0c;实在是…...

Python Beautiful Soup介绍

在Web数据抓取和网页解析的世界里&#xff0c;Python以其简洁的语法和丰富的库资源成为了许多开发者的首选语言。而Beautiful Soup&#xff0c;作为Python中一个强大的HTML和XML解析库&#xff0c;更是以其易用性和灵活性赢得了广泛的赞誉。本文将带你走进Beautiful Soup的世界…...

NDI Tools汉化版的安装

目录 一、安装包下载 二、安装英文版 三、安装汉化版 NDI(Network Device Interface)即网络设备接口,是由美国 NewTek 公司开发的免费标准,它可使兼容的视频产品以高质量、低延迟、精确到帧的方式通过网络进行通讯、传输和接收广播级质量的视频,非常适合在现场直播制作…...

【JAVA多线程】AQS,JAVA并发包的核心

目录 1.概述 1.1.什么是AQS 1.2.AQS和BlockQueue的区别 1.3.AQS的结构 2.源码分析 2.1.CLH队列 2.2.模板方法的实现 2.2.1.独占模式 1.获取资源 2.释放资源 2.2.2.共享模式 1.概述 1.1.什么是AQS AQS非常非常重要&#xff0c;可以说是JAVA并发包&#xff08;java.…...

从Time-MoE到KAN与Mamba:拆解ICLR 2025时间序列论文里的那些‘网红’架构与核心思想

从Time-MoE到KAN与Mamba&#xff1a;拆解ICLR 2025时间序列论文里的那些‘网红’架构与核心思想 当时间序列分析遇上现代深度学习&#xff0c;技术迭代的速度正在以指数级增长。ICLR 2025收录的论文中&#xff0c;一批融合创新架构与经典理论的方法正在重塑这个领域——从基于混…...

lvgl-micropython、lv_micropython和lv_binding_micropython到底啥关系?一文读懂耐

一、背景与问题缘起 MySQL 5.6.51 版本下 2000 万行核心业务表开展新增字段操作&#xff0c;需求为新增BIGINT(19) NOT NULL DEFAULT 0 COMMENT 注释&#xff08;因业务实际需要存储大数值关联字段&#xff09;。 表的核心特性为Java 多线程密集读写&#xff0c;业务请求持续高…...

2026开发网站用什么软件?建设网站步骤有哪些?

2026年&#xff0c;企业建立专业网站的需求正在逐渐增加。根据中国互联网络信息中心&#xff08;CNNIC&#xff09;的报告&#xff0c;我国中小企业网站数量已突破1800万&#xff0c;其中超过76.3%选择了SaaS建站模式。这个数据表明&#xff0c;现在的消费者越来越倾向于运用智…...

飞机遥感影像的数据集记录

飞机遥感影像的数据集记录&#xff1a; - 飞机检测数据集&#xff1a; DIOR、NWPU VHR-10、DOTA、LEVIR和RSOD等,但是上述数据集没有提供飞机目标具体型号信息,仅适用于飞机目标检测&#xff0c;不适用于飞机目标细粒度识别算法研究。 - 1. 飞机切片目标分类任务&#xff1a; M…...

从零到百:用Python代码解放剪映生产力,告别重复剪辑劳动

从零到百&#xff1a;用Python代码解放剪映生产力&#xff0c;告别重复剪辑劳动 【免费下载链接】JianYingApi Third Party JianYing Api. 第三方剪映Api 项目地址: https://gitcode.com/gh_mirrors/ji/JianYingApi 想象一下这样的场景&#xff1a;你是一家电商公司的视…...

AppleRa1n:轻松绕过iOS 15-16激活锁的图形化工具

AppleRa1n&#xff1a;轻松绕过iOS 15-16激活锁的图形化工具 【免费下载链接】applera1n icloud bypass for ios 15-16 项目地址: https://gitcode.com/gh_mirrors/ap/applera1n 还在为忘记Apple ID密码而无法使用自己的iPhone或iPad而烦恼吗&#xff1f;或者你购买了一…...

从零入门RAG:手把手教你构建大模型知识增强系统

本文深入解析RAG&#xff08;检索增强生成&#xff09;技术&#xff0c;阐述其解决大模型知识缺失、滞后及幻觉问题的核心优势&#xff0c;对比RAG与微调、Agent的适用场景&#xff0c;并拆解RAG的九步实现流程及四大核心组件&#xff08;知识嵌入、向量数据库、检索器、生成器…...

程序员必备!8个无广告在线小工具,调试效率直接翻倍

程序员必备&#xff01;8个无广告在线小工具&#xff0c;调试效率直接翻倍 日常开发中&#xff0c;经常会遇到各种琐碎的数据处理需求&#xff1a;接口返回的JSON格式混乱、时间戳不知道怎么转日期、URL参数需要编码解码…… 网上找的工具要么弹窗广告满天飞&#xff0c;要么功…...

3步实现微信聊天记录完整备份:让你永久保存重要对话的开源工具

3步实现微信聊天记录完整备份&#xff1a;让你永久保存重要对话的开源工具 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 在数字化时代&#xff0c;微信聊天记录已成为我…...

3步彻底解决Windows系统卡顿问题:开源系统清理工具实战指南

3步彻底解决Windows系统卡顿问题&#xff1a;开源系统清理工具实战指南 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服&#xff01; 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 你是否也经历过这样的场景&#xff1a;工作…...