Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >体验了多款国产类ChatGPT产品后,我选择了道合顺的【ChatIC】

体验了多款国产类ChatGPT产品后,我选择了道合顺的【ChatIC】

作者头像
THUNDER王
发布于 2023-05-01 08:37:45
发布于 2023-05-01 08:37:45
2.8K00
代码可运行
举报
运行总次数:0
代码可运行
前言

各位小伙伴们大家好呀,最近ChatGPT真的很火呀,不知道各位小伙伴们都使用上了吗?国内最近也上线了很多类ChatGPT产品,经过一番使用体验下来,我最终还是选择了道合顺的ChatIC,跟我一起来看看吧!


ChatIC能够做什么?

  辅助编写代码

   辅助软件编程

   首先来个简单的小测试,让它帮我们编写一个Python冒泡排序

Q:帮我写一段Python冒泡排序代码。

   看来,这个小测试根本难不倒它呀!让我们上点难度!

Q:分别用go,python,java,c++,php这五种语言写一段递归排序代码。

(一)Go语言版本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package main

import (
    "fmt"
)

func quickSort(arr []int) []int {
    if len(arr) <= 1 {
        return arr
    }
    pivot := arr[len(arr)-1]
    var left []int
    var right []int
    for i := 0; i < len(arr)-1; i++ {
        if arr[i] < pivot {
            left = append(left, arr[i])
        } else {
            right = append(right, arr[i])
        }
    }
    left = quickSort(left)
    right = quickSort(right)
    return append(append(left, pivot), right...)
}

func main() {
    arr := []int{64, 34, 25, 12, 22, 11, 90}
    fmt.Println("排序前:", arr)
    arr = quickSort(arr)
    fmt.Println("排序后:", arr)
}

(二)Python语言版本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def quick_sort(arr):
    if len(arr) <= 1:
        return arr
    pivot = arr[-1]
    left = [x for x in arr[:-1] if x < pivot]
    right = [x for x in arr[:-1] if x >= pivot]
    return quick_sort(left) + [pivot] + quick_sort(right)

arr = [64, 34, 25, 12, 22, 11, 90]
print("排序前:", arr)
arr = quick_sort(arr)
print("排序后:", arr)

(三)Java语言版本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class RecursiveSort {
    public static void main(String[] args) {
        int[] arr = {64, 34, 25, 12, 22, 11, 90};
        System.out.print("排序前:");
        display(arr);
        quickSort(arr, 0, arr.length - 1);
        System.out.print("排序后:");
        display(arr);
    }

    public static void quickSort(int[] arr, int left, int right) {
        if (left >= right) {
            return;
        }
        int pivot = arr[right];
        int i = left, j = right - 1;
        while (i <= j) {
            while (i <= j && arr[i] <= pivot) {
                i++;
            }
            while (i <= j && arr[j] >= pivot) {
                j--;
            }
            if (i < j) {
                swap(arr, i, j);
            }
        }
        swap(arr, i, right);
        quickSort(arr, left, i - 1);
        quickSort(arr, i + 1, right);
    }

    private static void swap(int[] arr, int i, int j) {
        int temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }

    private static void display(int[] arr) {
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }
        System.out.println();
    }
}

(四)C++语言版本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <iostream>
using namespace std;

void quickSort(int arr[], int left, int right) {
    if (left >= right) {
        return;
    }
    int pivot = arr[right];
    int i = left, j = right - 1;
    while (i <= j) {
        while (i <= j && arr[i] <= pivot) {
            i++;
        }
        while (i <= j && arr[j] >= pivot) {
            j--;
        }
        if (i < j) {
            swap(arr[i], arr[j]);
        }
    }
    swap(arr[i], arr[right]);
    quickSort(arr, left, i - 1);
    quickSort(arr, i + 1, right);
}

void display(int arr[], int n) {
    for (int i = 0; i < n; i++) {
        cout << arr[i] << " ";
    }
    cout << endl;
}

int main() {
    int arr[] = {64, 34, 25, 12, 22, 11, 90};
    int n = sizeof(arr) / sizeof(arr[0]);
    cout << "排序前:";
    display(arr, n);
    quickSort(arr, 0, n - 1);
    cout << "排序后:";
    display(arr, n);
    return 0;
}

(五)PHP语言版本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?php
function quickSort($arr){
    if(count($arr) <= 1){
        return $arr;
    }
    $pivot = $arr[count($arr) - 1];
    $left = $right = array();
    for($i = 0; $i < count($arr) - 1; $i++){
        if($arr[$i] < $pivot){
            array_push($left, $arr[$i]);
        }else{
            array_push($right, $arr[$i]);
        }
    }
    return array_merge(quickSort($left), array($pivot), quickSort($right));
}

$arr = array(64, 34, 25, 12, 22, 11, 90);
echo "排序前:";
print_r($arr);
$arr = quickSort($arr);
echo "排序后:";
print_r($arr);
?>

   辅助硬件编程

   经过上面的测试,发现软件编程这块根本难不倒它!既然在软件变成这块表现不错,让我们来看看ChatIC在硬件编程这块的表现如何吧!

Q:STM32单片机电灯代码

下面是一个简单的 STM32 单片机点灯代码,假定已经正确配置了 GPIO 引脚。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include "stm32f4xx.h"

int main(void) {

    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); //打开GPIO A 的时钟

    GPIO_InitTypeDef GPIO_InitStructure;
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;          //设置 GPIO_Pin_5 为点亮LED的引脚
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;      //设置 GPIO 为输出模式
    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;     //设置输出模式为推挽输出
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  //设置 GPIO 速度为 50MHz
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;   //设置 GPIO 引脚不需要 PU / PD 输入
    GPIO_Init(GPIOA, &GPIO_InitStructure);            //通过上述的全部配置去初始化GPIO

    while (1) {   //无限循环

        GPIO_SetBits(GPIOA, GPIO_Pin_5);       //点亮 LED
        Delay(0xFFFFF);  // 时间延迟

        GPIO_ResetBits(GPIOA, GPIO_Pin_5);     //熄灭 LED
        Delay(0xFFFFF);  // 时间延迟
    }
}

void Delay(__IO uint32_t nCount) //简单的时间延迟函数
{
    while(nCount--) {
    }
}

这个代码将配置和初始化 STM32F4Discovery 开发板上的 GPIO_A5 引脚,将其用作输出,然后循环控制点亮和熄灭 LED 灯。

  随后,我又问了几个技术问题,比如,画电路板lavout注意事项?

Q:画电路板lavout注意事项?

  亦或是“变压器EQ2514和EQ2504的区别”。

Q: 变压器EQ2514和EQ2504的区别

  问完这两个问题后,看到道合顺 ChatIC给出的答案,我震惊又惊讶,真没想到这款类ChatGPT这么厉害。回答速度又快又好!

  随后,我想了解下串口芯片,又问了一个问题——“推荐一下串口切换芯片”,道合顺 ChatIC很快又回复我了。

Q: 推荐一下串口切换芯片

我越问越上瘾,不仅让它翻译英文的数据手册,还尝试让它推荐替代芯片。

  翻译英文的数据手册

图1安森美TIP32的datesheet的英文内容。经过道合顺 ChatIC 翻译,最后得到了图2的中文翻译。

  推荐替代芯片

Q:GD32F103RET6的替代型号有

除了回答专业的程序问题,当然还可以做一些其他事。比如写小说,起名字或者调戏AI之类的~多多探索,还是蛮有意思的。

  写一部小说

Q:帮我写一个主题为现代都市灵异恐怖的长篇小说,字数约60w即可

  辅助起名字

Q:我的小侄女刚出生,姓周,帮我想几个名字,要古风一点

  调戏AI

  总而言之,体验感非常不错!要知道,目前这个阶段,免费且速度流畅的类ChatGPT产品已经不多了,趁着免费,赶紧去体验!


如何使用ChatIC?

 (一)进入ChatIC官网

ChatIC官网:ChatIC

 (二)注册登录账号

 (三)开始使用ChatIC吧!


本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-04-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
如何使用Go、Python、Java、Rust、C、JS等6种编程语言实现六大排序算法:插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序
排序算法是计算机科学中最基础也是最重要的概念之一。无论你是初学者还是资深开发者,理解并掌握排序算法对编程能力的提升至关重要。排序算法不仅是面试中的常见考题,它们在实际开发中也被广泛应用,例如在数据库查询、数据分析和大数据处理等领域。
猫头虎
2025/03/16
1280
stm32循迹小车详细制作过程(附加完全版代码)「建议收藏」
3、电源 12v锂电池组、配套充电器(推荐下图这种,方便,好接线,12v!12v! 12v!)
全栈程序员站长
2022/11/08
9.3K3
stm32循迹小车详细制作过程(附加完全版代码)「建议收藏」
基于STM32的蔬菜大棚温湿度智能控制系统设计
随着人们对健康和可持续生活方式的关注不断增加,蔬菜大棚成为了现代农业中的重要组成部分。蔬菜大棚提供了一个受控的环境,使得农民能够在任何季节种植蔬菜,并根据需要进行调节。为了实现最佳的蔬菜生长和产量,对温度和湿度等环境条件的精确控制至关重要。
DS小龙哥
2023/09/27
1.9K0
基于STM32的蔬菜大棚温湿度智能控制系统设计
原 初学算法-快速排序与线性时间选择(De
    快速排序算法其实只做了两件事:寻找分割点(pivot)和交换数据。     所谓寻找分割点,既找到一个预计会在中间位置附近的点,当然尽量越接近中点越好。     所谓交换数据,就是把比这个分割点小的数据,最终都放在分割点左边,比它大的都放在右边。     设要排序的数组是A[left]……A[right],首先任意选取一个数据(一般算法:使用随机数选取一个区间内的数。 文艺算法:取A[left]、A[right]和A[rand()]的中值。 二笔算法:选用数组的第一个数)作为关键数据,然后将所有
不高不富不帅的陈政_
2018/05/18
1.4K0
如何通过代码实现对硬件的控制?
你写入某个特定值,就能触发硬件在电气层面做出相应反应,例如引脚的电平变化、数据的传输、计时器的运行等。
不脱发的程序猿
2025/01/03
1450
如何通过代码实现对硬件的控制?
STM32新手入门教程[通俗易懂]
简介参考自:小马哥STM32四轴学习平台–DragonFly四轴STM32单片机软件入门级飞控算法课程
全栈程序员站长
2022/07/25
2.3K0
STM32新手入门教程[通俗易懂]
调通STM32F103RCT6 与W5500网卡芯片的PING程序
接到一个任务,验证硬件同事的一块板子上网卡芯片W5500的功能是否正常,MCU使用的是STM32F103RCT6 ,从了解到的信息看,W5500和MCU之间使用SPI接口进行通信,跟最近调了好久的DW1000的使用方法相同,驱动是厂家提供的,也就是只需要调通SPI通信,基本上就能驱动W5500工作!
呱牛笔记
2023/05/02
8840
调通STM32F103RCT6 与W5500网卡芯片的PING程序
基于STM32F4单片机对步进电机的控制(有代码)「建议收藏」
步进电机是将电脉冲控制信号转变为角位移或线位移的一种常用的数字控制执行元件,又称为脉冲电机。在驱动电源的作用下,步进电机受到脉冲的控制,其转子的角位移量和速度严格地与输入脉冲的数量和脉冲频率成正比。步进电机每接收一个电脉冲,转子就转过一个相应的角度(步距角)。**改变通电顺序可改变步进电动机的旋转方向;改变通电频率可改变步进电动机的转速。**因此,通过控制输入电脉冲的数目、频率及电动机绕组的通电顺序就可以获得所需要的转角、转速及转向,利用单片机就可以很容易实现步进电机的开环数字控制。 传统的步进电机控制方法是由触发器产生控制脉冲来进行控制的,但此种控制方法工作方式单一而且难于实现人机交互,当步进电机的参数发生变化时,需要重新进行控制器的设计。因此适合于单片机控制,单片机通过向步进电机驱动电路发送控制信号就能实现对步进电机的控制。
全栈程序员站长
2022/08/23
8.9K2
基于STM32F4单片机对步进电机的控制(有代码)「建议收藏」
RT-Thread Nano如何适配pin设备API,并在RT-Thread Nano使用软件包
本文介绍了如何在 RT-Thread Studio 上使用 RT-Thread Nano,并基于BearPI-IOT STM32L431RCT6的基础工程进行讲解如何使用PIN设备接口及相关软件包使用。
Rice加饭
2022/05/10
7500
RT-Thread Nano如何适配pin设备API,并在RT-Thread Nano使用软件包
基于STM32设计的出租车计费系统
在城市交通中,出租车是一种常见的交通工具。为了方便乘客和司机之间的交易,出租车计费系统被广泛应用于出租车行业。系统能够自动计算乘客的费用,提供准确、方便的计费服务,并且能够记录乘客的行驶数据,方便后续查询和管理。
DS小龙哥
2023/08/09
4700
基于STM32设计的出租车计费系统
文心一言 VS 讯飞星火 VS chatgpt (73)-- 算法导论7.1 4题
快速排序(Quicksort)是一种常用的排序算法,基于分治策略进行设计。默认情况下,快速排序会以递增序进行排序。若想修改快速排序以实现非递增排序,我们需要调整比较和交换的逻辑。
福大大架构师每日一题
2023/08/29
1760
文心一言 VS 讯飞星火 VS chatgpt (73)-- 算法导论7.1 4题
LAN8720A移植笔记
自己做的f407VE+LAN8720A板子,使用[野火]《LwIP应用开发实战指南》系列中的例程修改,因为野火使用的是F407ZG的芯片,硬件接线图也不一样,所以还需要做一些修改。
全栈程序员站长
2022/07/04
6100
LAN8720A移植笔记
PWM输入输出
输出PWM波的原理是,利用TIM定时器和输出比较,TIM定时器会周期性地线性增长,当计数器的值低于设定的比较值时输出高电平,大于等于比较值时输出低电平。由于是线性增长,高电平时长占整个周期信号时长的比例是固定的,这个比例被称为“占空比”,英文“Duty Cycle”。 在嵌入式系统中,特别是使用定时器来生成PWM信号时,经常使用的是定时器的比较寄存器(Capture/Compare Register,CCR)和自动重载寄存器(Auto-Reload Register,ARR)来控制PWM的占空比。 给定:
WuShF
2024/02/10
9810
PWM输入输出
蓝桥杯嵌入式之SysTick和独立按键
SysTick是滴答定时器,在相应的时间间隔内对变量进行操作(通过执行SysTick中断函数实现)。所以在比赛和学习中被组合成准确延时函数。
用户5935416
2019/08/01
8290
蓝桥杯嵌入式之SysTick和独立按键
基于stm32的智能小车(远程控制、避障、循迹)
学完stm32,总是想做点东西“大显身手”一下,智能小车就成了首选项目,其核心只是就是PWM输出,I/O口引脚电平判断。
全栈程序员站长
2022/11/02
3.4K1
(33)STM32——485实验笔记
目录 学习目标 内容 串口  485 特点 收发器 配置 代码 总结  ---- 学习目标         本节内容我们要学习的是485通信,这个是在51上没有的,但是知识不是特别复杂,而且和我们之前学的串口知识是相似的。 内容 串口  串口是一种接口标准,它规定了接口的电气标准,简单说只是物理层的一个标准。没有规定接口插件电缆以及使用的协议,所以只要我们使用的接口插件电缆符合串口标准就可以在实际中灵活使用,在串口接口标准上使用各种协议进行通讯及设备控制。 典型的串行通讯标准是RS232和RS485
小点点
2022/12/12
6150
(33)STM32——485实验笔记
基于单片机设计的智慧农业大棚检测系统
本项目基于单片机设计一个智慧农业大棚检测系统,以提供实时监测和管理大棚环境的关键参数。系统支持环境温度、湿度检测,光照强度检测,并能根据预设的阀值进行报警提示。为了实现数据的显示和管理,该系统还利用Qt开发了一款对应的Android手机APP,通过蓝牙传输模块将单片机采集到的数据传递到手机APP上进行显示和管理。
DS小龙哥
2024/01/09
1.4K0
基于单片机设计的智慧农业大棚检测系统
基于STM32设计的智能台灯
智能家居设备在现代生活中起着越来越重要的作用。智能台灯作为其中的一种,具有调节光照亮度、色温等功能,更加符合人们对于光照环境的个性化需求。当前设计一款基于STM32微控制器设计的智能台灯,该台灯具备可调节亮度和色温的特点,为用户提供了更加舒适的使用体验。
DS小龙哥
2023/08/28
1.1K0
基于STM32设计的智能台灯
stm32f103波形发生器_示波器波形分析
摘要
全栈程序员站长
2022/11/04
1.7K2
SPI控制8_8点阵屏
SPI是串行外设接口(Serial Peripheral Interface)的缩写。是一种高速的(10Mbps)的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线。
WuShF
2024/02/17
2790
SPI控制8_8点阵屏
推荐阅读
相关推荐
如何使用Go、Python、Java、Rust、C、JS等6种编程语言实现六大排序算法:插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验