Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Pascal三角形的Python定制

Pascal三角形的Python定制
EN

Stack Overflow用户
提问于 2017-02-03 20:03:45
回答 1查看 221关注 0票数 0

我有一个帕斯卡三角形(不包括前两个元素)和自定义三角形:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 P=[[1, 2, 1],
 [1, 3, 3, 1],
 [1, 4, 6, 4, 1],
 [1, 5, 10, 10, 5, 1],
 [1, 6, 15, 20, 15, 6, 1]]

第二个Pascal是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 P2=[[2],
 [2, 2],
 [2, 4, 2],
 [2, 6, 6, 2],
 [2, 8, 12, 8, 2],
 [2, 10, 20, 20, 10, 2]]

但我想生成一个新的自定义帕斯卡三角形,如下公式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-get P[0][1]
-add it to P2[0]
-write again P[0][1] as 4.

-get P[1][1]
-add it to P2[0]
-add it to P[0][0:2]
-write again P[1][1] as 7.

最后一个场景将是递归的。

结果如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 newpascal=[[1, 4, 1],
 [1, 7, 7, 1],
 [1, 10, 18, 10, 1],
 [1, 13, 34, 34, 13, 1],
 [1, 16, 55, 80, 55, 16, 1]]

我的代码不工作:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#Definition of classical Pascal's Triangle   
def pascal1(n):
    if n == 0:
        return [[1]]
    else:
        final_r = pascal1(n - 1)
        last = [0] + final_r[-1] + [0] # note: this does not modify final_r
        new_row = [last[k] + last[k - 1] for k in range(1, len(last))]
        return final_r + [new_row]
p=pascal1(10)

#Definition of Pascal's Triangle (Times2X)
def pascal2(n):
    if n == 0:
        return [[2]]
    else:
        final_r = pascal2(n - 1)
        last = [0] + final_r[-1] + [0] # note: this does not modify final_r
        new_row = [last[k] + last[k - 1] for k in range(1, len(last))]
        return final_r + [new_row]
p2=pascal2(10)


#My Custom Pascal
def newpascal(n):
    final_r = pascal1(n - 1)
    last = [0] + final_r[-1] + [0] # note: this does not modify final_r
    new_row = [last[k] + last[k - 1]+p2[0][0] for k in range(1, len(last))]
    return final_r + [new_row]
EN

回答 1

Stack Overflow用户

发布于 2017-10-31 06:28:03

我研究了你几乎难以理解的指令,并得出了以下结论:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def newpascal(n):
    array = pascal1(1)[1]
    p2 = pascal2(n)
    p3 = [list(array)]

    for x, row in enumerate(range(3, n + 2), start=0):

        array.append(1) # both widen the row and initialize last element

        # fill in the row, right to left
        for y, i in enumerate(range(row - 2, 0, -1)):
            # current computed from previous + p2
            array[i] += array[i - 1] + p2[x][y]

        p3.append(list(array))

    return p3

不幸的是,它不是递归的。但它似乎起作用了:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> p3 = newpascal(10)
>>> print(*p3, sep='\n')
[1, 1]
[1, 4, 1]
[1, 7, 7, 1]
[1, 10, 18, 10, 1]
[1, 13, 34, 34, 13, 1]
[1, 16, 55, 80, 55, 16, 1]
[1, 19, 81, 155, 155, 81, 19, 1]
[1, 22, 112, 266, 350, 266, 112, 22, 1]
[1, 25, 148, 420, 686, 686, 420, 148, 25, 1]
[1, 28, 189, 624, 1218, 1512, 1218, 624, 189, 28, 1]
>>> 

在您的解释中,pascal1()是在转移注意力,因为解决这个问题不需要它。您只需要从[[1, 1]]开始。所以现在是时候告诉我们你解决的“伟大的模式”了!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42032181

复制
相关文章
Pascal三角形
作者:bakari   时间:2012.8.4 Pascal三角形又称杨辉三角形,是多项式系数的一种规律展示,最早是由我国数学家杨辉发现,比Pascal早200多年。 下面简单地总结一些其算法。 一、数组计算法: 1、公式推导: 这个很简单,看图就知道 2012080421543028.png 由图可得公式:a[ i ][ j ] = a[i - 1] [j - 1] + a[i - 1][ j ]  2、代码展示: 1 void YangHuiTriangleArray(int Row)
Linux云计算网络
2018/01/10
1.3K0
Pascal三角形
又见Pascal
今天在逛一个上古论坛(Delphi盒子)的时候看了下下面的友链,发现一个星五博客 ,点进去看了一下,第一篇文章是基于pascal的网站开发。点击去溜达了一圈发现是一个国内的公司做的。
obaby
2023/02/22
6820
NVIDIA Pascal Geforce显卡揭秘
新一代NVIDIA“帕斯卡”(Pascal)架构显卡即将发布,各种传言也如火如荼,最近网络上流传一张图揭露全新的Geforce X家族,包含了基于GP104的X80、基于GP100的X80 ti和X8
GPUS Lady
2018/03/30
1.4K0
NVIDIA Pascal Geforce显卡揭秘
Python - 定制语法的string
本文地址: http://blog.csdn.net/caroline_wendy/article/details/28614491
py3study
2020/01/13
4170
合并PASCAL VOC的目标类别
我们遇到数据集中需要将car、bus、truck合并成car,或将person、rider、pedestrain合并为person。使用修改标签的方法就可以实现。
狼啸风云
2021/01/14
6610
Python 5.4 定制类
看到类似的__slots__这种形如__xx__的变量或者函数名就要注意,这些在Python中有特殊用途。
py3study
2020/01/14
6850
Python定制对象的独有特征
对象本质类似于类,也是一个名称空间,但是对象的名称空间存放对象独有的名字,而类中存放的是对象们共有的名字。因此我们可以直接为对象单独定制名字。
Python学习者
2023/03/07
2750
python 定制windows 开机启
1:开机后等待12s等待网络连接,之后判断网络,如果还是连接不上,就放弃开机启动的项目。
py3study
2020/01/10
8030
我的第一次Pascal程序
今天刚刚来学点Pascal语言,都怪我买的书大多是用Pascal语言写的,所以我只能试着学一点咯! 来一段程序员最经典的Hello World! 1 program exl_2; 2 begin 3
Angel_Kitty
2018/04/08
6280
我的第一次Pascal程序
PASCAL VOC提取出特定的目标类别
import osimport shutilann_filepath = 'D:\dataset\cityscapes\cityscape_voc_clean\Annotations\\'img_filepath = 'D:\dataset\cityscapes\cityscape_voc_clean\JPEGImages\\'img_savepath = 'D:\dataset\cityscapes\cityscape_voc_clean\JPEGImages_car\\'ann_savepath = '
狼啸风云
2020/07/14
1K0
LeetCode——Pascal's Triangle
Given numRows, generate the first numRows of Pascal’s triangle.
全栈程序员站长
2022/07/06
4330
将KITTI转换为PASCAL VOC
import os, sysimport globfrom PIL import Image # VEDAI 图像存储位置src_img_dir = "D:\dataset\cityscapes\leftImg8bit\\train\\zurich\\"# VEDAI 图像的 ground truth 的 txt 文件存放位置src_txt_dir = "D:\dataset\cityscapes\gtFine\\train\\zurich\\"src_xml_dir = "D:\dataset\citys
狼啸风云
2020/07/14
7360
python 面向对象技巧 定制类
看到类似__slots__这种形如__xxx__的变量或者函数名就要注意,这些在Python中是有特殊用途的。
葫芦
2019/04/17
4380
python写个三角形的问题
*              *****       **             ****
py3study
2020/01/09
1K0
PASCAL VOC统计各类目标数量
# -*- coding:utf-8 -*-import osimport xml.etree.ElementTree as ETimport numpy as npnp.set_printoptions(suppress=True, threshold=1000000)import matplotlibfrom PIL import Imagedef parse_obj(xml_path, filename): tree = ET.parse(xml_path + filename) obje
狼啸风云
2020/07/14
1.1K0
如何保护你的 Python 代码 (二)—— 定制 Python 解释器
花下猫语:常见的源码保护手段有四种,即发行 pyc 文件、代码混淆、打包成二进制文件以及使用 Cython,这些方法各有优点,但缺点也不少。前面我分享了一篇文章,对四种手段作了细致的对比分析,今天要继续分享该系列的第二篇。本文提出了一种新的源码保护手段,很有启发性。
Python猫
2019/10/10
2.2K0
如何保护你的 Python 代码 (二)—— 定制 Python 解释器
问题 1482: [蓝桥杯][算法提高VIP]Pascal三角
PASCAL三角是形状如下的三角矩阵: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 在PASCAL三角中的每个数是一个组合C(n,k)。 C(n,k)=(((((((n/1)(n-1))/2(n-2))/3)***(n-k+2))/(k-1))(n-k+1))/k 公式中交替使用乘法和除法,每次将从n开始递减的一个值相乘,然后除以下一个从1开始递增的值。 如果对行和列从0开始计数,则数字C(n,k)在n行k列。例如C(6,2)在第6行第2列。编程输出指定阶数的PASCAL三角矩阵。例如下面给出的是12阶PASCAL三角形矩阵。
且陶陶
2023/04/12
2570
问题 1482: [蓝桥杯][算法提高VIP]Pascal三角
【Leetcode】Pascal's Triangle II
Given an index k, return the kth row of the Pascal’s triangle.
全栈程序员站长
2022/07/05
2080
OpenFeign的定制
公司原先的模式是给客户提供统一的功能; 但是需求这种事情无法满足所有客户的需求; 因为各行各业都很卷,客户感觉自己没有被重视,客户会撂挑子不干的呀,因此公司换了一种玩法: 功能对外开放, 客户你不是觉得你提的需求简单嘛, you can you up, no can no bibi;
eeaters
2022/01/19
1.3K0
OpenFeign的定制
点击加载更多

相似问题

python递归pascal三角形

30

Pascal三角形的Python递归函数

42

Python:打印1行Pascal三角形

35

在Python中使用Pascal三角形

20

如何使用python打印pascal三角形

32
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文