如何免费使用ChatGPT,提高开发效率?以开发者的角度ChatGPT能做什么?

news2024/11/24 7:40:43

一、如何免费使用ChatGPT

1)登录openai官网https://openai.com/,注册账号后获取免费体验;但目前已经很难成功注册openai账号了,需要魔法上网的同时代理不能使用香港、俄罗斯等地区,需要国外邮箱和国外手机号,满足这些条件也不一定能注册成功。

2)使用https://poe.com/ChatGPT替代openai,该网站接入的是gpt-3.5,注册账号后可以免费使用。 

二、ChatGPT能做什么

作为一个开发人员,想要了解和使用ChatGPT,以提高工作效率为切入口,无疑是一个很好的方向(奉旨摸鱼);那我们就要先了解,ChatGPT在程序开发方向能做些什么:

1)给代码加注释

看过一个段子:我最讨厌那些写代码不写注释的人,和那些叫我写注释。。。好吧,这些脏活累活就交给ChatGPT来完成吧。

1.1、简约版输入

重新生成下面的代码片段,但请在每行代码中添加注释。{  代码片段  }

源码:

public class BindHelper {

	private static final String TAG = "BindHelper";
	private static final long CONFIG_TIME_OUT = 100;
	public static final int BINDING_SUCCESS = 1;
	public static final int BINDING_FAILED  = 0;
	public static final int BINDING_ING     = 2;
	public static final int BINDING_IDLE    = 3;

	ITuyaActivator mTuyaActivator;
	ActivatorBuilder builder;
	IBinder iBinder;
	Context mContext;
	String mToken ;

	public BindHelper(Context mContext,IBinder iBinder) {
		this.mContext = mContext;
		this.iBinder = iBinder;
	}

	public void starBind(){

	}

	public void stopBind(){

	}

	public void onDestroy(){

	}

	protected ITuyaSmartActivatorListener mActivatorListener = new ITuyaSmartActivatorListener(){

		@Override
		public void onError(String errorCode, String errorMsg) {
			
		}

		@Override
		public void onActiveSuccess(DeviceBean devResp) {
			
		}

		@Override
		public void onStep(String step, Object data) {

		}
	};


	public int getBindSta(){
		return  BINDING_STA;
	}
}

添加注释后:

/**
 * 用于设备绑定的帮助类
 */
public class BindHelper {

    // 日志标签
    private static final String TAG = "BindHelper";
    // 绑定超时时间
    private static final long CONFIG_TIME_OUT = 100;
    // 绑定成功的状态
    public static final int BINDING_SUCCESS = 1;
    // 绑定失败的状态
    public static final int BINDING_FAILED = 0;
    // 正在绑定的状态
    public static final int BINDING_ING = 2;
    // 空闲状态
    public static final int BINDING_IDLE = 3;

    // 设备绑定器
    ITuyaActivator mTuyaActivator;
    // 设备绑定器构造器
    ActivatorBuilder builder;
    // 绑定回调
    IBinder iBinder;
    // 上下文
    Context mContext;
    // 绑定用的 Token
    String mToken;

    // 构造函数
    public BindHelper(Context mContext, IBinder iBinder) {
        this.mContext = mContext;
        this.iBinder = iBinder;
    }

    // 开始绑定设备
    public void starBind() {

    }

    // 停止绑定设备
    public void stopBind() {

    }

    // 销毁
    public void onDestroy() {

    }

    // TuyaSmartActivatorListener 监听器
    protected ITuyaSmartActivatorListener mActivatorListener = new ITuyaSmartActivatorListener() {

        @Override
        public void onError(String errorCode, String errorMsg) {

        }

        @Override
        public void onActiveSuccess(DeviceBean devResp) {

        }

        @Override
        public void onStep(String step, Object data) {

        }
    };

    // 获取绑定状态
    public int getBindSta() {
        return BINDING_STA;
    }
}

输入描述缺陷:

1.这个描述有个不好的地方,它要求在每一行的代码中添加注释,实际上完全没有必要,过多的注释只会增加阅读的时间成本。

2.我们完全可以要求它在遵循既有注释规范的基础上,仅在必要的地方添加注释,基于这点,我们将这个描述修改如下:

1.2、升级版输入


请参照以下由>分隔的注释规范,对以下由```分隔的代码片段进行审查,并在注释规范要求的地方补上中文注释:

>1.对于所有的方法,都需要使用 Javadoc 注释。注释内容除了包含返回值、参数和异常说明外,还需要指出该方法的作用或实现的功能。

2.对于所有的类,都需要添加创建者和创建日期的注释。>

```代码片段```

添加注释后:

/**
 * 创建者:Unknown
 * 创建日期:Unknown
 * 描述:用于设备绑定的助手类
 */
public class BindHelper {

    // 定义常量
    private static final String TAG = "BindHelper";
    private static final long CONFIG_TIME_OUT = 100;
    public static final int BINDING_SUCCESS = 1;
    public static final int BINDING_FAILED = 0;
    public static final int BINDING_ING = 2;
    public static final int BINDING_IDLE = 3;

    // 定义变量
    ITuyaActivator mTuyaActivator;
    ActivatorBuilder builder;
    IBinder iBinder;
    Context mContext;
    String mToken;

    /**
     * 描述:构造函数
     * @param mContext 上下文
     * @param iBinder 绑定器
     */
    public BindHelper(Context mContext, IBinder iBinder) {
        this.mContext = mContext;
        this.iBinder = iBinder;
    }

    /**
     * 描述:开始设备绑定
     */
    public void starBind() {

    }

    /**
     * 描述:停止设备绑定
     */
    public void stopBind() {

    }

    /**
     * 描述:销毁
     */
    public void onDestroy() {

    }

    // TuyaSmartActivatorListener 监听器
    protected ITuyaSmartActivatorListener mActivatorListener = new ITuyaSmartActivatorListener() {

        /**
         * 描述:设备绑定出错的回调
         * @param errorCode 错误码
         * @param errorMsg 错误信息
         */
        @Override
        public void onError(String errorCode, String errorMsg) {

        }

        /**
         * 描述:设备绑定成功的回调
         * @param devResp 设备响应
         */
        @Override
        public void onActiveSuccess(DeviceBean devResp) {

        }

        /**
         * 描述:设备绑定过程中的回调
         * @param step 当前步骤
         * @param data 数据
         */
        @Override
        public void onStep(String step, Object data) {

        }
    };


    /**
     * 描述:获取绑定状态
     * @return 绑定状态
     */
    public int getBindSta(){
        return  BINDING_STA;
    }
}

2)编码规范

2.1、简约版输入

遵循Kotlin的Google风格指南,重写一下代码:{输入代码}

源码:

val allowedValues = arrayListOf("a", "b", "c")
fun foo(): Int { 
    return 1 
}
for (i in 0..n - 1) { /*……*/ 

输入描述缺陷:

1.这个描述有几个不好的地方:没有提供指南的参考来源,无法验证其权威性。

2.没有指出不遵循指南的地方,而是直接重写,无法验证其风险性。

3.没有提供指南的原文描述,无法验证其准确性。

基于以上几点,我们将这个 Prompt 重写如下:

2.2、升级版输入

请参照以下由>分隔的编码规范,对以下由```分隔的代码片段进行审查,并按照下列步骤完成任务:1.指出代码片段里不符合编码规范要求的地方2.提供编码规范里对应的原文描述3.提供符合编码规范要求的修改后的代码>1.总是使用不可变集合接口(Collection, List, Set, Map)来声明无需改变的集合。使用工厂函数创建集合实例时,尽可能选用返回不可变集合类型的函数:2.对于由单个表达式构成的函数体,优先使用表达式形式。3.使用 until 函数在一个开区间上循环>

```代码片段```

3)代码转换器

3.1简约版输入

将这段代码从 Java 翻译成 Kotlin {代码片段}

在Android中构建UI有两种方式,以XML标签为代表的静态布局,和以Java API 为代表的动态布局。前者常用于设置默认的布局样式,后者常用于运行时布局的动态调整。如果想减少对多文件的管理,就需要将XML标签转为Java代码;而如果想精简视图类的Java代码,就需要将部分Java代码转为XML标签。这种转换常常需要手动地重写,代码量一多的话简直是噩梦。现在,我们尝试把这项工作交给 ChatGPT,为此,我们将这个描述重写如下:

3.2、升级版

请将以下这个基于Android平台的XML布局文件(由```分隔)转换为Java代码实现,要求:

1.导入基于AndroidX的相关的类2.以Activity类型为上下文3.不同类型的视图用空行隔开并补上注释说明```代码片段```

源码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/sdk_toast_style"
    android:gravity="center">

    <TextView
        android:id="@+id/message"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:gravity="center_horizontal"
        android:padding="@dimen/dp_20"
        android:text=""
        android:textColor="#ffffff"
        android:textSize="@dimen/sp_14" />

</RelativeLayout>

转换Java代码:

import android.os.Bundle;
import android.view.ViewGroup;
import android.widget.RelativeLayout;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // 创建 RelativeLayout 布局
        RelativeLayout relativeLayout = new RelativeLayout(this);
        relativeLayout.setLayoutParams(new ViewGroup.LayoutParams(
                ViewGroup.LayoutParams.WRAP_CONTENT,
                ViewGroup.LayoutParams.WRAP_CONTENT
        ));
        relativeLayout.setBackgroundResource(R.drawable.sdk_toast_style);
        relativeLayout.setGravity(Gravity.CENTER);

        // 创建 TextView 视图
        TextView textView = new TextView(this);
        textView.setId(R.id.message);
        textView.setLayoutParams(new RelativeLayout.LayoutParams(
                RelativeLayout.LayoutParams.WRAP_CONTENT,
                RelativeLayout.LayoutParams.WRAP_CONTENT
        ));
        textView.setGravity(Gravity.CENTER_HORIZONTAL);
        textView.setPadding(getResources().getDimensionPixelSize(R.dimen.dp_20), 0, 0, 0);
        textView.setText("");
        textView.setTextColor(Color.parseColor("#ffffff"));
        textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, getResources().getDimension(R.dimen.sp_14));

        // 将 TextView 添加到 RelativeLayout 中心
        RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(
                RelativeLayout.LayoutParams.WRAP_CONTENT,
                RelativeLayout.LayoutParams.WRAP_CONTENT
        );
        layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE);
        textView.setLayoutParams(layoutParams);
        relativeLayout.addView(textView);

        setContentView(relativeLayout);
    }
}

4)代码解释

以下代码片段将做什么{输入代码}

5)编写应用程序

ChatGPT 为一个完全不懂编程的小白开发出一款完整应用程序的新闻早已屡见不鲜,我们要做的仅仅是理清我们的需求,并罗列好步骤交给它,这里展现的就是 ChatGPT 编程能力——编写应用程序。

5.1、功能需求

请按照以下由>分隔的具体步骤,提供Android平台对应的完整Kotlin代码实现,包括Activity文件、布局文件以及AndroidManifest.xml文件,以完成一个“查看手机相片”的需求。

过程中要求:

1.提示我要在哪个目录创建哪个文件;2.不使用任何第三方框架;3.在必要的地方添加中文注释;>

1.页面A提供一个按钮,点击可以打开Android系统的文件浏览器,并选择系统相册中的某一张图片;2.在用户选中了某张图片后,跳转到页面B以全屏预览该图片>

下面是ChatGPT编写“查看手机相片”需求的代码:

MainActivity.kt

import android.content.Intent
import android.net.Uri
import android.os.Bundle
import android.provider.MediaStore
import androidx.appcompat.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_main.*
import java.io.File

class MainActivity : AppCompatActivity() {
    private val REQUEST_CODE_CHOOSE_IMAGE = 1

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        chooseImageButton.setOnClickListener {
            openGallery()
        }
    }

    private fun openGallery() {
        // 创建选择图片的 Intent
        val intent = Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI)

        // 启动选择图片的 Activity
        startActivityForResult(intent, REQUEST_CODE_CHOOSE_IMAGE)
    }

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)

        if (requestCode == REQUEST_CODE_CHOOSE_IMAGE && resultCode == RESULT_OK && data != null) {
            val selectedImageUri: Uri = data.data ?: return

            // 获取图片文件的绝对路径
            val selectedImagePath = getRealPathFromUri(selectedImageUri) ?: return

            // 跳转到图片预览页面
            val intent = Intent(this, PreviewActivity::class.java)
            intent.putExtra(PreviewActivity.EXTRA_IMAGE_PATH, selectedImagePath)
            startActivity(intent)
        }
    }

    private fun getRealPathFromUri(uri: Uri): String? {
        val proj = arrayOf(MediaStore.Images.Media.DATA)
        val cursor = contentResolver.query(uri, proj, null, null, null)

        cursor?.let {
            if (it.moveToFirst()) {
                val columnIndex = it.getColumnIndexOrThrow(MediaStore.Images.Media.DATA)
                return it.getString(columnIndex)
            }
        }

        return uri.path
    }
}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:orientation="vertical"
              android:padding="16dp">

    <Button
        android:id="@+id/chooseImageButton"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="选择图片"/>

</LinearLayout>

PreviewActivity.kt

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.bumptech.glide.Glide
import kotlinx.android.synthetic.main.activity_preview.*

class PreviewActivity : AppCompatActivity() {
    companion object {
        const val EXTRA_IMAGE_PATH = "extra_image_path"
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_preview)

        // 获取传递过来的图片路径
        val imagePath = intent.getStringExtra(EXTRA_IMAGE_PATH) ?: return

        // 加载图片并显示
        Glide.with(this).load(File(imagePath)).into(imageView)
    }
}

activity_preview.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="match_parent">

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scaleType="centerCrop"/>

</RelativeLayout>

AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.example.myapplication">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>

                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>

        <activity android:name=".PreviewActivity"/>

    </application>

</manifest>

ChatGPT编写的“查看手机相片”需求,确实存在一些遗漏,如权限申请,使用glide库加载图片没有增加库依赖;手动补充后,整体需求效果是实现了的,虽然无法完全替代开发者,但一定程度上大大提高了开发者的开发效率。

当然你可以主动让ChatGPT添加权限和库依赖,慢慢调教它,在后续的需求开发中它将会考虑的更加全面,这也是它为大家所吹捧的原因之一 ,关联学习能力。

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

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

相关文章

企业用友NC软件被locked勒索病毒攻击,如何恢复nchome配置文件

近日&#xff0c;用友NC系统遭受了一次严重的勒索病毒攻击&#xff0c;导致许多企业的数据和配置文件被锁定。其中&#xff0c;NC Home配置文件也受到了影响&#xff0c;给企业带来了不小的损失。那么&#xff0c;在这种情况下&#xff0c;如何恢复NC Home配置文件呢&#xff1…

一个动作,直接盘活死仓库!实现效益增长200%!(附完整模板)

有人说&#xff1a;看一家工厂管理到不到位&#xff0c;看下他的仓库就知道了。 仓库作为企业存储和保管物料的重要场所&#xff0c;其管理的好坏直接影响着企业的生产与销售环节&#xff01; 我拜访过很多制造型企业&#xff0c;他们的仓库或多或少都存在以下问题—— 物料…

Hadoop的HDFS文件系统

Hadoop的HDFS文件系统 概述 Hadoop的HDFS文件系统是一种分布式文件系统&#xff0c;hadoop的核心组件之一。它的设计目标是能够在普通硬件上运行&#xff0c;并且能够处理大量的数据。HDFS采用了主从&#xff08;Master/Slave&#xff09;架构&#xff0c;其中有一个NameNode…

Adobe打印转PDF字体出错问题解决方案

错误现象 通过adobe pdf打印转换pdf时&#xff0c;不能够转换成功&#xff0c;只能弹出一个**.txt 打印——选择Adobe pdf——打印&#xff0c;txt中的内容如下&#xff1a; %%[ ProductName: Distiller ]%% %%[ Error: TT8E96441DtCID cannot be embedded because of licensi…

2023年美国大学生数学建模竞赛D题联合国可持续发展目标的优先次序解题全过程文档及程序

2023年美国大学生数学建模竞赛 D题 联合国可持续发展目标的优先次序 原题再现&#xff1a; 背景   联合国(UN)制定了17 项可持续发展目标(SDGs)。实现这些目标将最终改善世界各地许多人的 生活。这些目标不是相互独立的。因此&#xff0c;在某些目标上的积极收获通常会对其…

FM33A048B CRC

概述 循环冗余校验(Cyclic Redundancy Check&#xff0c;CRC)是最为常用的计算机和仪表数据通信的校验方法&#xff0c;FM33A048B中CRC计算单元为完全独立模块&#xff0c;通过软件控制可进行7816、I2C、UART和SPI模块有串行数据流接口的收发CRC计算和校验&#xff0c;也可进行…

二、搭建Kubernetes集群---2.1 搭建Kubernetes环境平台规划和部署方式介绍

二、搭建Kubernetes集群 2.1 搭建Kubernetes环境平台规划和部署方式介绍 2.1.1 搭建Kubernetes环境平台规划 如何安排Master、node。我们已经知道Kubernetes架构的组件共有两大部分&#xff0c;Master和node&#xff0c;因此这里的搭建我们可以分为两个部分&#xff0c;单Ma…

Vue3 + vite npm run build 后 html文件的srcipt标签不加type=module属性的js文件没有被打包

引言 &#xff1a;最近开发一个公司的官网项目&#xff0c;由于公司没有 UE&#xff0c; 领导就直接找了一个JQuery bootstrap 的项目模板要求在最快的时间里面把这个项目放到Vue框架里面。这个项目模板里面各种动画、图表都是引入的JQery插件&#xff0c;这就导致了&#xff…

vue通过缓存请求数据提高首界面展示效率

我在组件中编写了这样一段代码 <template><div class "appp"><button click "getUser">请求数据</button></div> </template><script> import axios from "axios"; export default {data() {retur…

SQL Tips汇集及常见问题

SQL Tips汇集及常见问题 表与数据 -- 创建并初始化部门表DROP TABLE IF EXISTS dept; CREATE TABLE dept (deptno int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 部门编号,dname varchar(15) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMM…

蓝桥杯青少组python:第十三届省赛第二场

选择题 1、十进制 55 55 55转换为十六进制是() A、 1101111 1101111 1101111 B、 313 313 313 C、 37 37 37 D、 67 67 67 2、下列关于函数的说法正确是&#xff08;&#xff09; A、函数的定义必须的程序的开头 B、函数定义后&#xff0c;其中的程序就可以自动运行 C、函数定…

如何让技术架构师具有预知未来业务发展的能力

大家好&#xff0c;今天我们来分享业务架构&#xff0c;但是我们并不是以产品经理角度讲述一个业务架构是什么以及如何做&#xff1f;而是以一个技术架构师的角度&#xff0c;讲述如何承接业务架构或在没有业务架构的时候&#xff0c;如何判断业务变化趋势而对系统架构提前做出…

【Linux】2.4 使用 git 命令行

git git —— 一个版本管理的工具。 &#xff08;gitee/github 底层都是git&#xff0c;只是不同的网页化的结果&#xff09; 有否&#xff1f;&#xff1a;查看是否有git——git --version [RoundBottleVM-12-2-centos ~]$ git --version git version 1.8.3.1安装&#xff…

排查java进程被linux杀掉

1、查找进程 通过jps -l查找相关的进程发现进程已经不存在 2、查看服务日志 查看服务日志后&#xff0c;发现凌晨4点53并未产生相关的错误日志导致程序出现OOM&#xff0c;此时进行进一步分析&#xff0c;是否是linux杀掉了进程 3、查看linux系统日志 通过less /var/logs/me…

超越大数据的边界:Apache Flink实战解析【上进小菜猪大数据系列】

上进小菜猪&#xff0c;沈工大软件工程专业&#xff0c;爱好敲代码&#xff0c;持续输出干货。欢迎订阅专栏 Apache Flink是一种快速、可靠、可扩展的开源流处理框架&#xff0c;被广泛应用于大数据领域。本文将介绍Apache Flink的实战运用&#xff0c;包括其核心概念、架构设…

Redis学习---04

一、Redis.conf配置文件 (1) units&#xff1a;对于大小写不敏感 导入 绑定ip和端口&#xff1a; (2) 通用&#xff1a; 以守护进程开启&#xff0c;默认为no 进程文件&#xff1a; 日志&#xff1a; 数据库的数量&#xff1a;是16个 是否显示logo&#xff1a; (3) 快照&…

探究ChatGPT与GPT-4的缺陷不足,揭示大预言LLM模型的局限性——没有完美的工具

目录 ChatGPT与GPT-4的缺陷不足——任何工具都不是万能的1. 引言2. 事实性错误2.1 问题示例2.2 原因分析2.3 解决方法 3. 实时更新3.1 问题示例3.2 原因分析3.3 解决方法 4. 总结 参考资料其它资料下载 ChatGPT与GPT-4的缺陷不足——任何工具都不是万能的 1. 引言 2022 年末 C…

借助TeeChart 图表控件,这家公司轻松创建了可视化图表看板

TeeChart for .NET是优秀的工业4.0 WinForm图表控件&#xff0c;官方独家授权汉化&#xff0c;集功能全面、性能稳定、价格实惠等优势于一体。TeeChart for .NET 中文版还可让您在使用和学习上没有任何语言障碍&#xff0c;至少可以节省30%的开发时间。技术交流Qqun&#xff1a…

版本控制工具之Git使用文档

以下讨论基于gitlab系统作为代码仓库。 项目Git初始化 创建一个空的git库或者初始化一个旧有git仓库 git init 现有项目关联到远程仓库 git remote add origin git172.16.200.39:public-team/spring-learn.git 下载代码 git clone <仓库地址> 查看已关联远程仓库 …

脑的物理系统

⼤脑模块化 人脑是一个复杂的网络&#xff0c;一般将大脑划分为不同的区域&#xff08;即节点&#xff09;&#xff0c;并使用某种方法表征大脑区域之间的关系&#xff08;即连接的边&#xff09;来构建人脑网络。在功能磁共振成像&#xff08;fMRI&#xff09;数据的网络模型…