各位小伙伴们大家好呀,最近ChatGPT真的很火呀,不知道各位小伙伴们都使用上了吗?国内最近也上线了很多类ChatGPT产品,经过一番使用体验下来,我最终还是选择了道合顺的ChatIC,跟我一起来看看吧!
首先来个简单的小测试,让它帮我们编写一个Python的冒泡排序
Q:帮我写一段Python冒泡排序代码。
看来,这个小测试根本难不倒它呀!让我们上点难度!
Q:分别用go,python,java,c++,php这五种语言写一段递归排序代码。
(一)Go语言版本
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语言版本
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语言版本
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++语言版本
#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语言版本
<?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 引脚。
#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:我的小侄女刚出生,姓周,帮我想几个名字,要古风一点
总而言之,体验感非常不错!要知道,目前这个阶段,免费且速度流畅的类ChatGPT产品已经不多了,趁着免费,赶紧去体验!
ChatIC官网:ChatIC