指向未来: 量子纠缠的本质是一个指针

news2024/11/24 13:47:28

指向未来: 量子纠缠的本质是一个指针

  • 概述
  • 基本概念
  • 理解量子纠缠
    • Python
    • Java
    • C++
  • 理解波粒二象性
    • Python
    • Java
    • C++
  • 理解量子隧穿
  • 理解宇宙常量
    • Python
    • Java
    • C++

概述

量子纠缠 (Quantum Entanglement) 是量子系统重两个或多个粒子间的一种特殊连接, 这种连接使得即使相隔很远, 这些粒子的状态也仍然互相依赖.
量子纠缠

基本概念

在探讨量子纠缠之前, 我们先阐述量子比特 (Qubit)的基本概念. 位 (Bit) 是信息的基本单位, 可以处于 0 或 1 的状态. 而量子比特可以同时处于 0 和 1 的叠加态. 即在同时 True 或 False 一个确定的状态, 直到被观测. 量子比特的特性包含叠加和纠缠, 叠加允许量子比特同时存在于多种可能的状态中. 对一个纠缠量子比特的观测会影响与它纠缠的另一个两字比特的状态, 无论两个两字比特相距多远.

理解量子纠缠

两个变相共享一个指针时, 当一个量子态改变时, 另一个量子态也会随着改变, 不管相隔多远.
在我们所处的 “游戏” 中, 物理空间的限制 (距离) 并不会影响指针, 在我们看来就是类似超光速的方式传递.

指针

Python

class QuantumBit
    def __init__(self, state)
        self.state = state

# 创建量子比特变量
qubit1 = QuantumBit(False)
qubit2 = qubit1

print(id(qubit1), id(qubit2))  # 内存地址相同 (指针)
print(qubit1.state, qubit2.state)  # 调试输出

# 修改量子比特 2 的状态, 1 随着修改
qubit2.state = True
print(qubit1.state, qubit2.state)  # 调试输出

输出结果

1795703080464 1795703080464
False False
True True

Java

public class QuantumBit {
    boolean state;

    public QuantumBit(boolean state) {
        this.state = state;
    }

    public static void main(String[] args) {
        QuantumBit qubit1 = new QuantumBit(false);
        QuantumBit qubit2 = qubit1;

        System.out.println(System.identityHashCode(qubit1) + " " + System.identityHashCode(qubit2));  // 内存地址
        System.out.println(qubit1.state + " " + qubit2.state);  // 调试输出

        // 修改量子比特 2 的状态, 1 随着修改
        qubit2.state = true;
        System.out.println(qubit1.state + " " + qubit2.state);  // 调试输出
    }
}

输出结果:

225534817 225534817
false false
true true

C++

#include <iostream>

class QuantumBit {
    public:
        bool state;

        QuantumBit(bool initState) : state(initState) {}
};

int main() {
    QuantumBit* qubit1 = new QuantumBit(false);
    QuantumBit* qubit2 = qubit1;

    std::cout << qubit1 << " " << qubit2 << std::endl;  // 内存地址
    std::cout << qubit1->state << " " << qubit2->state << std::endl;  // 调试输出

    // 修改量子比特 2 的状态, 1 随着修改
    qubit2->state = true;
    std::cout << qubit1->state << " " << qubit2->state << std::endl;  // 调试输出

    delete qubit1;  // 清理内存
    // 不需要 delete qubit2, 内存地址相同
    return 0;
}

输出结果:

0x54de70 0x54de70
0 0
1 1

理解波粒二象性

同理当我们观测光是粒子还是波的时候, 我们的观测就是在 “游戏” 中调用一次函数, 这就会改变指针的状态, 从而导致量子纠缠的改变或解除 (塌缩).

光既不是粒子也不是波, 拥有绝对速度所以可能呈现为粒子或波, 取决于我们怎么调用函数. 为了避免我们这个 “游戏” 吃过多的算力, 所以没有观测的时候就不需要加载, 观测了才加载.

Python

import random

class QuantumObject:
    def __init__(self):
        # 初始状态为 None,表示既是波也是粒子 (叠加态)
        self.state = None

    def observe(self):
        # 观测时随机决定对象表现为波或粒子
        self.state = random.choice(['wave', 'particle'])
        return self.state

# 创建一个量子对象
quantum_object = QuantumObject()

# 模拟观测过程
for _ in range(10):
    result = quantum_object.observe()
    print(result)

输出结果:

particle
wave
particle
wave
wave
particle
particle
particle
wave
wave

Java

import java.util.Random;

class QuantumObject {
    private String state;

    public QuantumObject() {
        // 初始状态为 null,表示既是波也是粒子 (叠加态)
        this.state = null;
    }

    public String observe() {
        // 观测时随机决定对象表现为波或粒子
        Random random = new Random();
        this.state = random.nextBoolean() ? "wave" : "particle";
        return this.state;
    }
}

public class Main {
    public static void main(String[] args) {
        QuantumObject quantumObject = new QuantumObject();

        // 模拟观测过程
        for (int i = 0; i < 10; i++) {
            String result = quantumObject.observe();
            System.out.println(result);
        }
    }
}

输出结果:

标准输出:particle
wave
particle
particle
wave
wave
wave
particle
wave
wave

C++

#include <iostream>
#include <cstdlib>
#include <ctime>

class QuantumObject {
    std::string state;

public:
    QuantumObject() : state("") {}

    std::string observe() {
        // 观测时随机决定对象表现为波或粒子
        state = (rand() % 2 == 0) ? "wave" : "particle";
        return state;
    }
};

int main() {
    srand(time(0));  // 初始化随机数生成器
    QuantumObject quantumObject;

    // 模拟观测过程
    for (int i = 0; i < 10; i++) {
        std::string result = quantumObject.observe();
        std::cout << result << std::endl;
    }

    return 0;
}

输出结果:

particle
wave
particle
wave
wave
particle
wave
particle
wave
particle

理解量子隧穿

当粒子通过量子势垒时, 正常来说是过不去的. 但是如果粒子是一个函数 (Function), 代表粒子的就是一个函数指针, 量子势垒是一个调度器. 之所以量子无法穿过势垒, 是应该进入势垒后指针发生了偏移. 当我们看到接触势垒被弹回来的粒子, 我们看到的是该粒子的指针, 但是不是原来的例子所指的函数对象了.

量子隧穿

import random

def particle_function():
    return "原始粒子"

def altered_function():
    return "改变后的粒子"

def quantum_barrier(particle):
    if random.random() < 0.5:  # 假设有 50% 概率粒子指针发生偏移
        return altered_function
    else:
        return particle


for _ in range(10):
    # 创建粒子函数指针
    particle_ptr = particle_function

    # 模拟粒子接触量子势垒
    particle_ptr = quantum_barrier(particle_ptr)

    # 输出粒子状态
    print(particle_ptr())

输出结果:

原始粒子
原始粒子
改变后的粒子
改变后的粒子
改变后的粒子
改变后的粒子
改变后的粒子
原始粒子
改变后的粒子
改变后的粒子

理解宇宙常量

为了避免我们这个 “游戏” 产生内存溢出或者消号过多算力, 所以我们需要一些常量 (Constant) 来进行限速.

速度越快时间越慢, 为了避免游戏崩溃, 对于消耗过多算力的函数, 游戏回尽可能少的调用, 放慢时钟. 在物理上就会导师时间间隔变长.

Python

# 光速, 单位: 米 / 秒
SPEED_OF_LIGHT = 299792458

# 普朗克常量, 单位: 焦耳·秒
PLANCK_CONSTANT = 6.62607015e-34

# 万有引力常数, 单位: 牛顿·平方米 / 平方千克
GRAVITATIONAL_CONSTANT = 6.67430e-11

# 玻尔兹曼常量, 单位: 焦耳 / 开尔文
BOLTZMANN_CONSTANT = 1.380649e-23

# 阿伏伽德罗常数, 单位: 1 / 摩尔
AVOGADRO_CONSTANT = 6.02214076e23

# 电子电荷, 单位: 库仑
ELEMENTARY_CHARGE = 1.602176634e-19

# 真空磁导率, 单位: 特斯拉·米 / 安培
VACUUM_PERMEABILITY = 4 * 3.14159265358979323846e-7

# 真空电容率, 单位: 法拉 / 米
VACUUM_PERMITTIVITY = 8.854187817e-12

# 标准大气压, 单位: 帕斯卡
STANDARD_ATMOSPHERE = 101325

# 斯特藩-玻尔兹曼常数, 单位: 瓦特 / 平方米·开尔文^4
STEFAN_BOLTZMANN_CONSTANT = 5.670374419e-8

Java

// 光速, 单位: 米 / 秒
    public static final double SPEED_OF_LIGHT = 299792458;

    // 普朗克常量, 单位: 焦耳·秒
    public static final double PLANCK_CONSTANT = 6.62607015e-34;

    // 万有引力常数, 单位: 牛顿·平方米 / 平方千克
    public static final double GRAVITATIONAL_CONSTANT = 6.67430e-11;

    // 玻尔兹曼常量, 单位: 焦耳 / 开尔文
    public static final double BOLTZMANN_CONSTANT = 1.380649e-23;

    // 阿伏伽德罗常数, 单位: 1 / 摩尔
    public static final double AVOGADRO_CONSTANT = 6.02214076e23;

    // 电子电荷, 单位: 库仑
    public static final double ELEMENTARY_CHARGE = 1.602176634e-19;

    // 真空磁导率, 单位: 特斯拉·米 / 安培
    public static final double VACUUM_PERMEABILITY = 4 * Math.PI * 1e-7;

    // 真空电容率, 单位: 法拉 / 米
    public static final double VACUUM_PERMITTIVITY = 8.854187817e-12;

    // 标准大气压, 单位: 帕斯卡
    public static final int STANDARD_ATMOSPHERE = 101325;

    // 斯特藩-玻尔兹曼常数, 单位: 瓦特 / 平方米·开尔文^4
    public static final double STEFAN_BOLTZMANN_CONSTANT = 5.670374419e-8;

C++

// 阿伏伽德罗常数, 单位: 1 / 摩尔
static constexpr double AVOGADRO_CONSTANT = 6.02214076e23;

// 电子电荷, 单位: 库仑
static constexpr double ELEMENTARY_CHARGE = 1.602176634e-19;

// 真空磁导率, 单位: 特斯拉·米 / 安培
static constexpr double VACUUM_PERMEABILITY = 4 * 3.14159265358979323846e-7;

// 真空电容率, 单位: 法拉 / 米
static constexpr double VACUUM_PERMITTIVITY = 8.854187817e-12;

// 标准大气压, 单位: 帕斯卡
static constexpr int STANDARD_ATMOSPHERE = 101325;

// 斯特藩-玻尔兹曼常数, 单位: 瓦特 / 平方米·开尔文^4
static constexpr double STEFAN_BOLTZMANN_CONSTANT = 5.670374419e-8;

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

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

相关文章

oracle11g的闪回技术-闪回表-时间戳

--数据库闪回表 --1创建表&#xff08;登录模式system&#xff09; CREATE table dept2 as select * from dept;--此语句如果加上where条件可用于工作中数据的临时备份 select * from dept2;--查询新建表信息 --进入sql>set time on 通过时间点闪回 记录弹出的时间点&#…

2024年linux内核开发会是程序员新的风口吗?

前言 众所周知&#xff0c;linux操作系统一直靠着稳定&#xff0c;安全&#xff0c;开源等优势占据着80%以上的服务器市场。小至私人企业&#xff0c;大至世界百强&#xff0c;都离不开它的身影。以至于无论你擅长的是哪门语言&#xff0c;面试的时候都会或多或少的涉及linux的…

物联网网关与plc怎么连接?

物联网网关与plc怎么连接&#xff1f; 物联网是当今社会中最热门的技术之一&#xff0c;而物联网网关则是连接物联网设备与云平台的核心设备之一。物联网网关在连接各种传感器和设备时起着至关重要的作用。而另一种广泛应用于工业控制和自动化领域的设备是可编程逻辑控制器&…

上海亚商投顾:沪指探底回升 大金融板块午后走强

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 指昨日探底回升&#xff0c;深成指、创业板指午后跌超1%&#xff0c;尾盘集体拉升翻红&#xff0c;北证50指数涨…

你知道怎么做好接口测试?

前言 谈起软件测试&#xff0c;就不得不说一下接口测试&#xff0c;凡是有功能的软件都离不开接口&#xff0c;没有接口的软件只是一个模具或页面&#xff0c;不具备任何功能。 什么是接口 业内常说的接口一般指两种&#xff1a; API&#xff1a;应用程序编程接口&#xff0c…

【unity】麦克风声音驱动,控制身体做出不同动作

1.在角色对象上挂在animator组件&#xff0c;并将动作控制器与其关联 2.在角色对象上挂在audio source组件。 3.新建voice control脚本&#xff0c;编写代码如下&#xff1a; using System; using System.Collections; using System.Collections.Generic; using UnityEngine;…

vue2 使用vuex状态管理工具 如何配置与搭建。

等我研究研究&#xff0c;下一期给大家出一个后台管理左侧侧边栏如何搭建的。 首先我们先下载一下 vuex包 yarn add vuex3 1.先导入我们需要的 Vue 和 vuex 2.注册vuex 3.创建vuex实例 4.导出store export default store 5.在main.js中导入并挂载到全局。 Vuex如何实…

C++编写、生成、调用so库详解(二)

我们上篇中主要讲了怎么去打包so库 C编写、生成、调用so库详解(一) 这篇我们就来说一些怎么调用so库 目录 1.调用符合JNI标准的so库 2.调用不符合JNI标准的so库 上面说了两种不同类型的so库,我们分别来看一下怎么调用这两种,在调用so库之前,我们先说一下直接调用上面写的C…

全球网络是如何互联的?

1.Internet 在之前的学习中我们知道了Internet和internet的区别&#xff0c;也知道了Internet目前是全球最大的网络&#xff0c;并且由很多规模不同的网络互联而成。到目前已经有超过90个国家接入了Internet&#xff0c;主机超过400万台&#xff0c;可以说Internet是全人类的信…

【Ubuntu18.04安装Labelme】

Ubuntu18.04安装Labelme 1 安装Anaconda并创建conda环境2 安装依赖3 安装Labelme4 安装验证 1 安装Anaconda并创建conda环境 Anaconda3安装教程&#xff1a;https://blog.csdn.net/dally2/article/details/108206234 "ctrlaltt"快捷键打开终端&#xff0c;创建conda…

gateway Redisson接口级别限流解决方案

文章目录 前言1. 计数器算法&#xff08;固定窗口限流器&#xff09;2. 滑动窗口日志限流器3. 漏桶算法&#xff08;Leaky Bucket&#xff09;4. 令牌桶算法&#xff08;Token Bucket&#xff09;5. 限流队列应用场景实现工具 一、Redisson简介二、Redisson限流器的原理三、Red…

利用 ChatGPT 高效搜索:举一反三的思考方式,高效查找解决方案

文章目录 基础思路举一反三基于我的已知推荐 Web 框架系统方案建议 - 让 ChatGPT 推断我的一些微末思考结论 本文只是我的一些尝试&#xff0c;基于 ChatGPT 实现系统化快速搜索某编程语言的特定领域相关包或者基于其他语言类推荐落地方案的尝试。 这篇文章中描述的方式不一定…

ABAP IDOC 2 XML

有个需求&#xff0c;外围系统希望我们给到一个IDOC 记录的样例&#xff0c;但是我们we02中并无法看到 就找了一个demo去直接展示IDOC内容 *&---------------------------------------------------------------------* *& Report Z_IDOC_TO_XML *&------------…

关于前端或者postman传递Date数据测试接口报错

错误&#xff1a; org.apache.ibatis.exceptions.PersistenceException: \r\n### Error querying database. Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String\r\n### Cause: java.lang.IllegalArgumentException: invali…

服务器运维小技巧(一)——如何进行远程协助

服务器运维中经常会遇到一些疑难问题&#xff0c;需要安全工程师&#xff0c;或者其他大神远程协助。很多人会选择使用todesk或者向日葵等一些远控软件。但使用这些软件会存在诸多问题&#xff1a; 双方都需要安装软件&#xff0c;太麻烦需要把服务器的公钥/密码交给对方不知道…

Android WorkManager入门(二)

WorkManager入门 上一篇前言创建 WorkRequest并提交 定时的任务&#xff08;PeriodicWorkRequest&#xff09;配合约束使用定义执行范围失败后的重试为WorkRequest打上TAG其他取消方法 传参和返回参数总结参考资料 上一篇 Android WorkManager入门&#xff08;一&#xff09; …

权威认证!腾讯微搭入选Forrester《2023年第四季度中国专业开发人员低代码平台市场分析报告》

在Forrester近日发布的《The Low-Code Platforms For Professional Developers Landscape In China,Q4 2023》&#xff08;《2023年第四季度中国专业开发人员低代码平台市场分析报告》&#xff09;中&#xff0c;腾讯云成功入选。该报告通过对中国的低代码市场进行了深入的研究…

2018年认证杯SPSSPRO杯数学建模C题(第一阶段)机械零件加工过程中的位置识别全过程文档及程序

2018年认证杯SPSSPRO杯数学建模 基于轮廓特征的机械零件位置识别研究 C题 机械零件加工过程中的位置识别 原题再现&#xff1a; 在工业制造自动生产线中&#xff0c;在装夹、包装等工序中需要根据图像处理利用计算机自动智能识别零件位置&#xff0c;并由机械手将零件自动搬…

[Android] Android架构体系(1)

文章目录 Android 的框架Dalvik 虚拟机JNI原生二进制可执行文件Android NDK中的binutils Bionic谷歌考虑到的版权问题Bionic与传统的C标准库&#xff08;如glibc&#xff09;的一些不同 参考 Android 的框架 Android 取得成功的关键因素之一就是它丰富的框架集。 没有这些框架…

游卡:OceanBase在游戏核心业务的规模化降本实践

从 2023 年 9 月测试 OceanBase&#xff0c;到如今 3 个核心业务应用 OceanBase&#xff0c;国内最早卡牌游戏研发者之一的游卡仅用了两个月。是什么原因让游卡放弃游戏行业通用的 MySQL方案&#xff0c;选择升级至 OceanBase&#xff1f;杭州游卡网络技术有限公司&#xff08;…