三元组 订阅
三元组是指形如((x,y),z)的集合(这就是说,三元组是这样的偶,其第一个射影亦是一个偶),常简记为(x,y,z)。三元组是计算机专业的一门公共基础课程——数据结构里的概念。主要是用来存储稀疏矩阵的一种压缩方式,也叫三元组表。假设以顺序存储结构来表示三元组表(triple table),则得到稀疏矩阵的一种压缩存储方式,即三元组顺序表,简称三元组表。 展开全文
三元组是指形如((x,y),z)的集合(这就是说,三元组是这样的偶,其第一个射影亦是一个偶),常简记为(x,y,z)。三元组是计算机专业的一门公共基础课程——数据结构里的概念。主要是用来存储稀疏矩阵的一种压缩方式,也叫三元组表。假设以顺序存储结构来表示三元组表(triple table),则得到稀疏矩阵的一种压缩存储方式,即三元组顺序表,简称三元组表。
信息
外文名
Three tuple
研究领域
计算机
别    名
三元组表
含    义
用来存储稀疏矩阵的一种压缩方式
中文名
三元组
三元组研究目的
对于在实际问题中出现的大型的稀疏矩阵,若用常规分配方法在计算机中储存,将会产生大量的内存浪费,而且在访问和操作的时候也会造成大量时间上的浪费,为了解决这一问题,从而产生了多种解决方案。由于其自身的稀疏特性,通过压缩可以大大节省稀疏矩阵的内存代价。具体操作是:将非零元素所在的行、列以及它的值构成一个三元组(i,j,v),然后再按某种规律存储这些三元组,这种方法可以节约存储空间 [1]  。
收起全文
精华内容
下载资源
问答
  • 三元组

    千次阅读 2019-06-13 12:00:56
    给定 n,k,对于一 个三元组(a,b,c),若合法则需要满足1≤a,b,c≤n,且两两元素之和均为k的倍数。 求不同的合法的三元组有多少个。 三元组的相应的任意一 位不同则认为他们不同。 Solution

    也许更好的阅读体验
    D e s c r i p t i o n \mathcal{Description} Description
    给定 n , k n,k n,k,对于一 个三元组 ( a , b , c ) (a, b, c) (a,b,c),若合法则需要满足 1 ≤ a , b , c ≤ n 1 ≤ a, b, c ≤ n 1a,b,cn,且两两元素之和均为 k k k的倍数。
    求不同的合法的三元组有多少个。
    三元组的相应的任意一 位不同则认为他们不同。
    S o l u t i o n \mathcal{Solution} Solution
    a = x 1 k , b = x 2 k , c = x 3 k a=x_1k,b=x_2k,c=x_3k a=x1k,b=x2k,c=x3k
    x 1 , x 2 , x 3 ∈ [ 0 , n / k ] x1,x2,x3\in [0,n/k] x1,x2,x3[0,n/k] (包括小数)
    则有
    a + b = ( x 1 + x 2 ) k a+b=(x_1+x_2)k a+b=(x1+x2)k
    b + c = ( x 2 + x 3 ) k b+c=(x_2+x_3)k b+c=(x2+x3)k
    a + c = ( x 1 + x 3 ) k a+c=(x_1+x_3)k a+c=(x1+x3)k

    x 1 + x 2 ∈ Z x_1+x_2\in Z x1+x2Z
    x 2 + x 3 ∈ Z x_2+x_3\in Z x2+x3Z
    x 1 + x 3 ∈ Z x_1+x_3\in Z x1+x3Z
    所以可以知道

    • x 1 , x 2 , x 3 ∈ Z x1,x2,x3\in Z x1,x2,x3Z
      x 1 , x 2 , x 3 x1,x2,x3 x1,x2,x3 n / k n/k n/k种选择
      • 当三个数字全部不相同 有 C n / k 3 C_{n/k}^3 Cn/k3种搭配,每种搭配有6种排列方式
      • 当三个数字有两个相同 有 C n / k 2 C_{n/k}^2 Cn/k2种搭配,每种搭配有6种排列方式
      • 当三个数字全部都相同 有 n / k n/k n/k种搭配,每种搭配有1种排列方式
    • x 1 , x 2 , x 3 ∉ Z x1,x2,x3∉ Z x1,x2,x3/Z
      ∵ x 1 , x 2 , x 3 \because x1,x2,x3 x1,x2,x3两两相加为整数
      ∴ x 1 , x 2 , x 3 = i k + k 2 , i ∈ Z ∴x1,x2,x3=ik+\frac{k}{2},i\in Z x1,x2,x3=ik+2k,iZ
      此时条件 k % 2 = = 0 k\%2==0 k%2==0
      x 1 , x 2 , x 3 x1,x2,x3 x1,x2,x3 n / k 2 − n / k n/\frac{k}{2}-n/k n/2kn/k种选择
      接下来的计算同上

    代码

    /*******************************
    Author:Morning_Glory
    LANG:C++
    Created Time:2019年06月13日 星期四 08时19分25秒
    *******************************/
    #include <cstdio>
    #include <fstream>
    #define ll long long
    using namespace std;
    int n,k,tim,hal;
    ll ans;
    ll C3 (int n) { return 1ll*n*(n-1)/2*(n-2)/3; }
    ll C2 (int n) { return 1ll*n*(n-1)/2; }
    int main()
    {
    	scanf("%d%d",&n,&k);
    	tim=n/k;
    	if ((k-1)&1){
    		hal=n/(k/2)-tim;
    		ans+=6*C3(hal)+6*C2(hal)+hal;
    	}
    	ans+=6*C3(tim)+6*C2(tim)+tim;
    	printf("%lld\n",ans);
    	return 0;
    }
    
    展开全文
  • 三元组-源码

    2021-02-21 09:23:45
    三元组
  • 程序设计-寻找三数之和为零的三元组(Java)

    万次阅读 多人点赞 2019-03-14 17:40:08
    * * @author Created by Peace */ public class ThreeSumEqualsZero { public static ArrayList> solve(int[] nums) { // 三元组用ArrayList来表示 ArrayList> result = new ArrayList(); if (nums == null) { ...

    分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net

    package peace.learn.java.programming;
    
    import java.util.ArrayList;
    import java.util.Arrays;
    
    /**
     * 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a、b、c ,使得 a + b + c = 0 ?
     * 找出所有满足条件且不重复的三元组。
     *
     * @author Created by Peace
     */
    public class ThreeSumEqualsZero {
    
        public static ArrayList<ArrayList<Integer>> solve(int[] nums) {
    
            // 三元组用ArrayList<Integer>来表示
            ArrayList<ArrayList<Integer>> result = new ArrayList<>();
    
            if (nums == null) {
                return result;
            }
    
            // 排序
            Arrays.sort(nums);
    
            for (int i = 0; i < nums.length - 2; i++) {
    
                // 避免重复元素计算
                if (i != 0 && nums[i] == nums[i - 1]) {
                    continue;
                }
    
                // 固定一个数,从后面的数中选出两个数。因为数组是有序的,所以可以用两个数组下标left和right,
                // left指向当前元素的后一个位置,right指向数组的最后一个位置。
                // 三数相加的和等于0时,加入解集;
                // 三数相加的和小于0时,把left往右边移动;
                // 三数相加的和大于0时,把right往左边移动。
                int left = i + 1;
                int right = nums.length - 1;
                while (left < right) {
                    int sum = nums[i] + nums[left] + nums[right];
                    if (sum == 0) {
                        ArrayList<Integer> r = new ArrayList<>();
                        r.add(nums[i]);
                        r.add(nums[left]);
                        r.add(nums[right]);
                        result.add(r);
                        left++;
                        right--;
    
                        // 跳过重复元素计算
                        while (left < right && nums[left] == nums[left - 1]) {
                            left++;
                        }
    
                        // 跳过重复元素计算
                        while (left < right && nums[right] == nums[right + 1]) {
                            right--;
                        }
                    } else if (sum < 0) {
                        left++;
                    } else {
                        right--;
                    }
                }
            }
            return result;
        }
    
        public static void main(String[] args) {
            int[] nums1 = {-1, 0, 1, 2, -1, -4};
            System.out.println(solve(nums1));
    
            int[] nums2 = {0};
            System.out.println(solve(nums2));
    
            int[] nums3 = {1, 2, 3, 4, 5, 6};
            System.out.println(solve(nums3));
        }
    
    }
    
    // Output:
    /*
    [[-1, -1, 2], [-1, 0, 1]]
    []
    []
    */

    展开全文
  • 毕达哥拉斯三元组

    2018-10-18 14:21:17
    毕达哥拉斯三元组
  • 三元组 c++

    2018-09-18 22:12:24
    三元组 使用c++语言写出数据结构三元组,主要为基础数据结构课程资源
  • 培养解决综合性实际问题的能力 二课程设计任务 题目稀疏矩阵AB的和 题目要求稀疏矩阵A,B用三元组顺序表存储 三元组表C存放结果矩阵 AB的和存到C中 题目用三元组C存放以三元组顺序表做存储结构的稀疏矩阵AB的和 一 ...
  • 毕达哥拉斯三联 毕达哥拉斯三元组在Python中 打开勾股三重奏笔记本。 遵循更多详细说明。
  • 三元组代码

    2016-03-08 10:26:07
    三元组代码,数据结构的,大家仅作参考哈!!!
  • 三元组的基本功能

    2018-06-12 00:55:46
    C语言实现三元组基本功能,包括创建数组A,B的三元组,转置,A+B,A*B的实现
  • 三元组相乘

    2012-10-19 14:54:15
    三元组存放输入的两个稀疏矩阵A34和B34,将稀疏矩阵A转置后与稀疏矩阵B相乘,结果存放三元组C,并输出结果。
  • 三元组 概念

    千次阅读 2019-12-16 14:41:04
    计算机中的三元组 三元组是指形如((x,y),z)的集合(这就是说,三元组是这样的偶,其第一个射影亦是一个偶),常简记为(x,y,z)。 三元组是计算机专业的一门公共基础课程——数据结构里的概念。 主要是用来...

    计算机中的三元组

    三元组是指形如((x,y),z)的集合(这就是说,三元组是这样的偶,其第一个射影亦是一个偶),常简记为(x,y,z)。

    三元组是计算机专业的一门公共基础课程——数据结构里的概念。

    主要是用来存储稀疏矩阵的一种压缩方式,也叫三元组表。

    假设以顺序存储结构来表示三元组表(triple table),则得到稀疏矩阵的一种压缩存储方式,即三元组顺序表,简称三元组表。

    在这里插入图片描述
    图片中的三元组应该不满足这个条件。

    展开全文
  • 毕达哥拉斯定理:勾股定理又称商高定理、毕达哥拉斯定理,是平面几何中一个基本而重要的定理。勾股定理说明,平面上的直角...毕达哥拉斯三元组:有正整数三元组x,y,z,满足x^2+y^2=z^2,这样的三元组被称为毕达哥拉
    毕达哥拉斯定理:勾股定理又称商高定理、毕达哥拉斯定理,是平面几何中一个基本而重要的定理。勾股定理说明,平面上的直角三角形的两条直角边的长度(古称勾长、股长)的平方和等于斜边长(古称弦长)的平方。反之,若平面上三角形中两边长的平方和等于第三边边长的平方,则它是直角三角形(直角所对的边是第三边)。

    毕达哥拉斯三元组:有正整数三元组x,y,z,满足x^2+y^2=z^2,这样的三元组被称为毕达哥拉斯三元组。特殊的,若gcd(x,y,z)=1,那么这个毕达哥拉斯三元组是本原的。

    定理:正整数x,y,z构成一个本原毕达哥拉斯三元组且y为偶数,当且仅当存在互素的正整数m,n(m>n),其中m为奇数n为偶数,或者m为偶数n为奇数,并且满足:
                                               x=m^2-n^2
                                               y=2mn
                                               z=m^2+n^2

    题目1:http://poj.org/problem?id=1305
    题目2:http://acm.fzu.edu.cn/problem.php?pid=1669
    展开全文
  • // 初始化三元组 public function init($val1,$val2,$val3) { $this->_data[0] = $val1; $this->_data[1] = $val2; $this->_data[2] = $val3; return true; } // 销毁三元组 public function destroy() { unset($...
  • 关系、实体关系、实体属性、三元组、SPO三元组到底是什么呢?而提到实体关系时,小白又是什么样的心理状态呢?(到底是什么呢) 三元组标注: 榆林神木 、矿藏 、 镁 三个词构成了一个三元组(triple) 实体关系...
  • 动态分配三元组

    2014-10-12 10:43:48
    动态分配内存 三元组代码Triplet_动态存储分配_引用版
  • 改进三元组损失

    2021-04-27 15:40:30
    三元组损失tripletloss 改进三元组损失
  • Cooke 三元组设计 - 设计方法在第 12 章,设计手册,Daniel Malacara 的第 2 版中进行了解释
  • 本节介绍稀疏矩阵的三元组顺序表压缩存储方式。 通过《矩阵的压缩存储》一节我们知道,稀疏矩阵的压缩存储,至少需要存储以下信息: 矩阵中各非 0 元素的值,以及所在矩阵中的行标和列标; 矩阵的总行数和总列数;...
  • 数据结构三元组

    2018-01-01 09:24:07
    数据结构(清华大学出版社)课程中的三元组,定义与实现,C语言描述
  • 三元组抽取

    2021-03-04 16:50:11
    下面记录一下三元组抽取的步骤: 首先是人工标引三元组,然后依次执行以下步骤: 步骤一:从excel标引文件中生成json格式数据;去除头尾放入index_ann.json文件中,上传到ann_four_data目录下; 步骤二:运行 ...
  • 介绍三元组损失与难样本挖掘三元组损失的原理
  • 每个三元组由任意三个实数的序列构成,基本操作包括:创建一个三元组,取三元组的任意一个分量,置三元组的任意一个分量,求三元组的最大分量,求三元组的最小分量,显示三元组,销毁三元组等。 选作内容: 实现两个...
  • 矩阵三元组

    2020-05-14 16:30:01
    矩阵三元组 #include "stdio.h" #define M 3 //最大行 #define N 5 //最大列 #define MAXSIZE 100 //存储最大数据空间 typedef int ElemType; //每行存放的数据 typedef struct Triple{//Triple三元组 int i,...
  • 数据结构三元组转置

    2014-06-29 13:13:30
    三元组转置以顺序表排列。 #include #include <stdlib.h> #define MAX 1000 //矩阵中非0元素的个数 typedef int ElemType; //定义三元组 typedef struct { int row,col; //非零元素的行号列号 ElemType e; ...
  • 标题:递增三元组 给定三个整数数组 A = [A1, A2, ... AN], B = [B1, B2, ... BN], C = [C1, C2, ... CN], 请你统计有多少个三元组(i, j, k) 满足: 1. 1 <= i, j, k <= N 2. Ai < Bj < Ck ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 72,242
精华内容 28,896
关键字:

三元组