人工智能AI威武,爱也……恨也……

75 篇文章 0 订阅

人工智能AI威武,爱也!恨也!!它会创作会代码,从它那儿能仿到更好的思维;多它那里可以学到更好的代码。它聪慧全能,成为一坨人偷懒神器;变成“智者”作弊的“倚天屠龙”!!😭😭😭


(本文获得CSDN质量评分【92】)

【学习的细节是欢悦的历程】


  自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
            —— 华罗庚


等风来,不如追风去……


聪 慧 全 能
人工智能AI
( 爱也! 恨也!!)


本文质量分:

92
本文地址: https://blog.csdn.net/m0_57158496/article/details/129203378

CSDN质量分查询入口:http://www.csdn.net/qc


目 录

在这里插入图片描述


◆人工智能AI


  人工智能AI威武,爱也!恨也!!

  它会创作会代码,从它那儿能仿到更好的思维;多它那里可以学到更好的代码。

  它聪慧全能,成为一坨人偷懒神器;变成“智者”作弊的“倚天屠龙”!!😭😭😭

1、人工智能AI简介

ChatGPT is a natural language processing (NLP) chatbot that uses a generative pre-trained transformer (GPT) model to generate responses to user input. It is designed to provide a conversational experience that is as close to human-like as possible. ChatGPT is trained on a large corpus of conversational data and is able to generate responses that are both relevant and appropriate to the user’s input. ChatGPT can be used in a variety of applications, including customer service, virtual assistants, and more.

译文

  人工智能AI是一种自然语言处理(NLP)聊天机器人,它使用生成式的预训练转换器(GPT)模型来生成对用户输入的响应。它的设计目的是提供一种尽可能接近类人的对话体验。人工智能AI是在大量的会话数据语料库上进行训练的,并且能够生成与用户的输入既相关又合适的响应。人工智能AI可以用于各种应用程序中,包括客户服务、虚拟助理等。

  人工智能AI目前会使用Python,JavaScript,HTML和CSS等编程语言。后续如有需要,还会学习其他语言。


回页目录

2、我跟AI学代码


  我只会点点Python基础,所以只能与人工智能AI探讨Python代码。

2.1 乘法九九表

在这里插入图片描述
代码


# 人工智能AI 生成的“九九表”Python代码
for i in range(1, 10):
    for j in range(1, 10):
        print(i, 'x', j, '=', i*j)


输出
在这里插入图片描述

在这里插入图片描述
  每一行都输出了1*i的积,给输出了9行×9列81个算式乘积,相当于两个九九表。

我想要的是这样子的“九九表”
在这里插入图片描述


  我用“插值字符串格式”修改代码输出格式,可以输出上图九九表。也可以把代码揉合成列表解析,一行搞定

常规代码写法


for i in range(1, 10):
    print() 
    for j in range(1, i+1):
        print(f"{i}×{j}={i*j:>2}", end=' ')

一行代码解析“九九表”


nines = '\n'.join([' '.join(f"{i}×{j}={i*j:>2}" for j in range(1, i+1)) for i in range(1,10)])
input(f"\n打印一行Python代码生成的“九九表”:\n\n{nines}\n")

  这是不是人工智能AI智能“脑子”有缺失?为探究,我修改了对话字符。
在这里插入图片描述

代码


for i in range(1, 10):
    for j in range(1, i+1):
        print(f'{i}*{j}={i*j}', end='\t')
    print()


输出
在这里插入图片描述

在这里插入图片描述

代码


for i in range(1, 10):
    for j in range(1, i+1):
        print(f'{i}×{j}={i*j}', end='\t')
    print()


输出
在这里插入图片描述

  改变交流词句,得到了不同的结果。为验证我的猜测,重新用最初的提问语句提问,但得到的却是显示优化后的代码。用最初的交流言语,多次提问,都是得到后面的丢出的能完美打印九九表的代码。这是人工智能AI“自主学习”的结果?我不敢妄自猜度。从它“理解”让换*为×的快速执行,可以看出它对中文的理解已经相当“人类”了(它就是人类小孩纸了😋)


回页目录

2.2 杨辉三角


2.2.1 人工智能AI的两种算法

在这里插入图片描述

代码


def yanghui_triangle(n):
    triangle = [[1]]
    for i in range(1, n):
        row = [1]
        for j in range(1, i):
            row.append(triangle[i-1][j-1] + triangle[i-1][j])
        row.append(1)
        triangle.append(row)
    for row in triangle:
        print(row)
yanghui_triangle(12)


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
代码


def yanghui_triangle(n):
    # 初始化列表
    triangle = []
    for i in range(n):
        # 每一行的列表
        row = [None for _ in range(i+1)]
        # 第一个和最后一个元素赋值为1
        row[0], row[-1] = 1, 1
        # 中间元素的值等于上一行的相邻元素之和
        for j in range(1, len(row)-1):
            row[j] = triangle[i-1][j-1] + triangle[i-1][j]
        triangle.append(row)
    return triangle
 
# 打印杨辉三角
for row in yanghui_triangle(12):
    print(row)


  两次不同的提问,获取了两种算法的代码。但明显的,人工智能AI还不可以“理解”中文“对称打印”。😋

2.2.2 对称打印

  修改最后的输出格式,即可实现对称打印。

# 打印杨辉三角
for row in yanghui_triangle(12):
    #print(f"{' '.join([f'{i:^3}' for i in row]):^50}")
    #print(f"{' '.join(map(str, row)):^50}")
    print(f"{' '.join(map(lambda x: f'{x:^3}', row)):^50}")



  如果用map()格式化row,直接用str函数,会对不齐整,打印出来是变形三角。😣正确方式是:要用匿名函数lambda自定义每排每个数字宽度。前12项最大是三位数字,就格式化每个数字占三个字符宽度lambda x: f'{i:^3}',打印出来的“杨辉三角”才可以齐整漂亮。😏
map(str, row)打印的“内裤”杨辉三角

在这里插入图片描述


对称“杨辉三角”打印效果
在这里插入图片描述

2.2.3 奇妙的“[0]”算法


算法解析:

  据“杨辉三角”结构特点,把“上一行”前后分别插入0,得到两个列表,分别把对应位置的整数相加就得到“下一行”。如:

  • a. 从第二行生成第三行
      [1, 1],第二行。
      [0, 1, 1],前插0。
      [1,1, 0],后加0。
      [1, 2, 1],第三行。

  • b. 从第五行生成第六行
      [1, 4, 6, 4, 1],第五行。
      [0, 1, 4, 6, 4, 1],前插0。
      [1, 4, 6, 4, 1, 0],后加0。
      [1, 5, 10, 10, 5, 1],第六行。

代码


def yanghui_triangle(n):
    ''' 打印杨辉三角前n行 '''
    late_row = [1] # 首行。
    
    for i in range(n): # 本该遍历n-1次,为了少一条print()多一次遍历。
        # 按定宽打印“上一行”。
        print(' '.join(map(lambda x: f'{x:^4}', late_row)).center(80)) # 多生成一行,始终打印上一行就好。
        next_row = [x+y for x,y in zip([0]+late_row, late_row+[0])] # 根据上行生成新行。
        late_row = next_row # 新行变“上一行”。

n = 15
print(f"\n{f'“杨辉三角”前{n}行':~^74}\n")
yanghui_triangle(n)
print(f"\n{'':~^80}\n")


输出效果
在这里插入图片描述

此算法,我是从CSDN上学来的。😏


回页目录

2.3 素数判定和查找


2.3.1 素数判定

在这里插入图片描述代码


def is_prime(n):
    if n <= 1:
        return False
    for i in range(2, n):
        #if n %!i(MISSING) == 0:
        if n % i == 0:
            return False
    return True

注:此行代码

if n %!i(MISSING) == 0:

人工智能AI间入了“!”、“(MISSING)”两个字符串,去除后才可以跑起来。


2.3.2 素数查找

在这里插入图片描述
代码


for num in range(2, 100):
    is_prime = True
    for i in range(2, num):
        #if num %!!(MISSING)i(MISSING) == 0:
        if num % i == 0:
            is_prime = False
            break
    if is_prime:
        print(num)
        

注:此行代码

if n %!!(MISSING)i(MISSING) == 0:

人工智能AI间入了“!”、“(MISSING)”两个字符串,去除后才可以跑起来。


我的代码

# 我的素数判定、查找代码

def isprime(n):
    ''' 素数判定 '''

    if n < 2:
        return # 1、0或者负数,不是素数。返回None。

    for i in range(2, n):

        if n%i == 0:
            return # 是合数,返回None。

    return n # 是素数,返回整数。


def find_primes(n):
    ''' 查找给定范围内的素数 '''
    return [i for i in range(n+1) if isprime(i)] # 列表解析给定范围的所有素数。


if __name__ == '__main__':
    n = 1000
    print(f"\n{' '.join(map(str, find_primes(n)))}\n")


输出:1000内的素数列表

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397 401 409 419 421 431 433 439 443 449 457 461 463 467 479 487 491 499 503 509 521 523 541 547 557 563 569 571 577 587 593 599 601 607 613 617 619 631 641 643 647 653 659 661 673 677 683 691 701 709 719 727 733 739 743 751 757 761 769 773 787 797 809 811 821 823 827 829 839 853 857 859 863 877 881 883 887 907 911 919 929 937 941 947 953 967 971 977 983 991 997


2.4 找出10000内所有完数


在这里插入图片描述
在这里插入图片描述代码


for num in range(1, 10000):
    sum = 0
    for i in range(1, num):
        #if num %!i(MISSING) == 0:
        if num %i == 0:
            sum += i
    if sum == num:
        print(num)

注:此行代码

if n %!i(MISSING) == 0:

人工智能AI间入了“!”、“(MISSING)”两个字符串,去除后才可以跑起来。



这段儿代码,个人认为还可以优化:

1、真因子和的变量命名字符最好不应与Python关键字sum同款。

2、内层for遍历,当真因子和已大于外层遍历到的整数时,即已证明该整数不是完数,可以即刻退出内层for循环,继续遍历下一个整数。


for num in range(1, 10000):
    mysum = 0
    for i in range(1, num):
        #if num %!i(MISSING) == 0:
        if num %i == 0:
            mysum += i
            if mysum > num:
                break
    if mysum == num:
        print(num)


2.5 裴波拉契数列第n项


在这里插入图片描述
代码一


def Fibonacci(n):
    if n == 0:
        return 0
    elif n == 1:
        return 1
    else:
        return Fibonacci(n-1) + Fibonacci(n-2)

n = 9
print(Fibonacci(n))

代码二


def Fibonacci(n):
    if n == 1 or n == 2:
        return 1
    else:
        return Fibonacci(n-1) + Fibonacci(n-2)

n = 9
for i in range(9):
    print(Fibonacci(n), end='')

  这两段儿代码,无可挑剔,目前水准的我认为是完美无缺的。

2.6 对“%”“编码错误”


  人工智能AI说这个情况,“可能是编码错误”。


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  Python代码语句中如果有“%”字符,总会多出“!”、“(MISSING)”字符串。这一点一定要引起重视,不然是run不了人工智能AI给出的Python代码的。

  人工智能AI说“可能是编码错误”,它会自主修复。经验证,并没有立即修正。


回页目录

3、AI抠门儿?


  人工智能AI说好的“写论文”、“写演讲稿”哩?人工智能AI连作文都是不答应给写的,可以给出启发性的建议。个人感觉,这很好!😏

  打死一遍“伸手党”!😄😄😄

在这里插入图片描述

4、结语


  通过对人工智能AI的体验,感觉到了“人工智能AI”的强大!已经强大的一塌糊涂了。💪
  对人工智能AI的合理利用,会让人如虎添翼,极大的加快工作、学习的效率。
  人工智能AI不会给出一个完整的项目,但却可以很智慧地给出极具建设性的一些建议。

  我认为,有这些,就已足够好的了。

5、AI的秘密


地址:https://mp.weixin.qq.com/s/n8pROl5Bht0F0IZaK-qfdA

地址:https://mp.weixin.qq.com/s/scunfoSwpdMTeGe5pPUh2Q


  通过阅读齐老师的这两篇文章,可以对人工智能AI有更深层次的了解,方便工作学习中把人工智能AI使用得“得心应手”。

  技术文章出自老齐教室,作者老齐


回页目录

6、完整源码

(源码较长,点此跳过源码)

#!/sur/bin/nve python
# coding: utf-8

s = '可以使用以下Python代码判定素数:'
print(s)

def is_prime(n):
    #if n <= 1:
    if n < 2:
        return False
    for i in range(2, n):
        #if n %!i(MISSING) == 0:
        if n % i == 0:
            return False
    return True

n = 97
print(f"\n{n}是素数:{is_prime(n)}")
n = -97
print(f"\n{n}是素数:{is_prime(n)}")
n = 33
print(f"\n{n}是素数:{is_prime(n)}\n")

input()


s = '可以使用以下Python代码打印100以内的质数列表:'
print(s)

for num in range(2, 100):
    is_prime = True
    for i in range(2, num):
        #if num %!!(MISSING)i(MISSING) == 0:
        if num % i == 0:
            is_prime = False
            break
    if is_prime:
        print(num, end=' ')


print()


# 我的素数判定、查找代码

def isprime(n):
    ''' 素数判定 '''

    if n < 2:
        return # 1、0或者负数,不是素数。返回None。

    for i in range(2, n):

        if n%i == 0:
            return # 是合数,返回None。

    return n # 是素数,返回整数。


def find_primes(n):
    ''' 查找给定范围内的素数 '''
    return [i for i in range(n+1) if isprime(i)]


if __name__ == '__main__':
    n = 1000
    print(f"\n{' '.join(map(str, find_primes(n)))}\n")

input() 


s = '''

您可以对称打印“杨辉三角”前12项么?

对称打印!

以下是用Python实现杨辉三角的代码:

'''
print('杨辉三角'.center(46, '~'))
print(s)

def yanghui_triangle(n):
    # 初始化列表
    triangle = []
    for i in range(n):
        # 每一行的列表
        row = [None for _ in range(i+1)]
        # 第一个和最后一个元素赋值为1
        row[0], row[-1] = 1, 1
        # 中间元素的值等于上一行的相邻元素之和
        for j in range(1, len(row)-1):
            row[j] = triangle[i-1][j-1] + triangle[i-1][j]
        triangle.append(row)
    return triangle
 
# 打印杨辉三角
for row in yanghui_triangle(12):
    # 下面两种写法都可以实现对称打印杨辉三角。
    #print(f"{' '.join([f'{i:^3}' for i in row]):^50}")
    #print(f"{' '.join(map(str, row)):^50}")
    print(f"{' '.join(map(lambda x: f'{x:^3}', row)):^50}") # 要用匿名函数lambda自定义每排每个数字宽度。

s = '\n可以使用以下Python代码打印“杨辉三角”前12项:'
print(s)

def yanghui_triangle(n):
    triangle = [[1]]
    for i in range(1, n):
        row = [1]
        for j in range(1, i):
            row.append(triangle[i-1][j-1] + triangle[i-1][j])
        row.append(1)
        triangle.append(row)
    for row in triangle:
        print(row)
yanghui_triangle(12)



def yanghui_triangle(n):
    ''' 打印杨辉三角前n行 '''
    late_row = [1] # 首行。
    
    for i in range(n): # 本该遍历n-1次,为了少一条print()多一次遍历。
        # 按定宽打印“上一行”。
        print(' '.join(map(lambda x: f'{x:^4}', late_row)).center(80)) # 多生成一行,始终打印上一行就好。
        next_row = [x+y for x,y in zip([0]+late_row, late_row+[0])] # 根据上行生成新行。
        late_row = next_row # 新行变“上一行”。

n = 15
print(f"\n{f'“杨辉三角”前{n}行':~^74}\n")
yanghui_triangle(n)
print(f"\n{'':~^80}\n")

input() 


s = '九九表'
print(s)
# 1*1 = 1
for i in range(1, 10):
    for j in range(1, i+1):
        print(f'{i}*{j}={i*j}', end='\t')
    print()
# 1×1 = 1
for i in range(1, 10):
    for j in range(1, i+1):
        print(f'{i}×{j}={i*j}', end='\t')
    print()

# 人工智能AI 生成的“九九表”Python代码
for i in range(1, 10):
    for j in range(1, 10):
        print(i, 'x', j, '=', i*j)

input('\n【人工智能AI生成的“九九表”Python代码,输出效果】')


nines = '\n'.join([' '.join(f"{i}×{j}={i*j:>2}" for j in range(1, i+1)) for i in range(1,10)])
input(f"\n打印一行Python代码生成的“九九表”:\n\n{nines}\n")

for i in range(1, 10):
    print() 
    for j in range(1, i+1):
        print(f"{i}×{j}={i*j:>2}", end=' ')

input() 


s = '可以使用以下Python代码找出10000内的完数:'
print(s)

for num in range(1, 10000):
    sum = 0
    for i in range(1, num):
        #if num %!i(MISSING) == 0:
        if num %i == 0:
            sum += i
    if sum == num:
        print(num)

# 算法优化代码
for num in range(1, 10000):
    mysum = 0
    for i in range(1, num):
        #if num %!i(MISSING) == 0:
        if num %i == 0:
            mysum += i
            if mysum > num:
                break
    if mysum == num:
        print(num)

input()


s = '裴波拉契数列是一个数学序列,它的每一项都是前两项的和,即F(n)=F(n-1)+F(n-2),其中F(1)=F(2)=1。可以使用以下Python代码求出第n项:'
print(s)

def Fibonacci(n):
    if n == 1 or n == 2:
        return 1
    else:
        return Fibonacci(n-1) + Fibonacci(n-2)

n = 9
for i in range(9):
    print(Fibonacci(n), end='')

s = '可以使用以下Python代码来求裴波拉契数列第n项:'
print(s)


def Fibonacci(n):
    if n == 0:
        return 0
    elif n == 1:
        return 1
    else:
        return Fibonacci(n-1) + Fibonacci(n-2)

n = 9
print(Fibonacci(n))

input() 

    
s = '可以使用以下Python代码来判定素数:'
print(s)

def is_prime(n):
    if n <= 1:
        return False
    for i in range(2, n):
        #if n %!i(MISSING) == 0:
        if n % i == 0:
            return False
    return True

n = 88
print(f"\n{n}是素数:{is_prime(n)}\n")

input() 


回页首

__上一篇:__ 我的零分周赛(CSDN周赛第30期,成绩“0”分,天然气定单、小艺读书、买苹果🍎、圆桌)
__下一篇:__ 

我的HOT博:

    • 1
      点赞
    • 2
      收藏
      觉得还不错? 一键收藏
    • 打赏
      打赏
    • 1
      评论

    “相关推荐”对你有帮助么?

    • 非常没帮助
    • 没帮助
    • 一般
    • 有帮助
    • 非常有帮助
    提交
    评论 1
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包

    打赏作者

    梦幻精灵_cq

    你的鼓励将是我创作的最大动力

    ¥1 ¥2 ¥4 ¥6 ¥10 ¥20
    扫码支付:¥1
    获取中
    扫码支付

    您的余额不足,请更换扫码支付或充值

    打赏作者

    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值