ISBN 10位编号转换成13位的python算法

13位ISBN的校验位计算方法

(模数10 余数 0-9 差数 1-10 校验位:0-9)

13位ISBN校验位改变了10位ISBN的计算方法,采用奇数偶数位算法,模数也改为10,所以新的ISBN中将不出现X校验码。
13位ISBN的最后一位数字为校验位,数值范围由0至9,其计算方法如下 :

(1) 用1分别乘书号的前12位中的奇数位, 用3乘以偶数位:(位数从左到右为13位到2位)
(2) 将各乘积相加,求出总和 ;
(3) 将总和除以10,得出余数;
(4) 将10减去余数后即为校验位。如相减后的数值为10,校验位则为0。

'''
        /// ISBN-10位转换成ISBN-13位方法
        /// </summary>
        /// <param name="Isbn10">ISBN-10编号</param>
        /// <returns>ISBN-13编号</returns>
'''
         def GetIsbn13(Isbn10):
         
			if Isbn10.Length == 10:    
	                Location13 = "9";
	                Location12 = "7";
	                Location11 = "8";
	                Location10 = Isbn10.Substring(0,1);
	                Location09 = Isbn10.Substring(1, 1);
	                Location08 = Isbn10.Substring(2, 1);
	                Location07 = Isbn10.Substring(3, 1);
	                Location06 = Isbn10.Substring(4, 1);
	                Location05 = Isbn10.Substring(5, 1);
	                Location04 = Isbn10.Substring(6, 1);
	                Location03 = Isbn10.Substring(7, 1);
	                Location02 = Isbn10.Substring(8, 1);

               		IsbnSUM =int(Location13) + int(Location11) + int(Location09) + int(Location07) + int(Location05) + int(Location03) + (int(Location12) + int(Location10) + int(Location08) + int(Location06) + int(Location04) + int(Location02)) * 3;
               		Location01 =str((10 - IsbnSUM % 10)%10); 
               		Isbn13 = Location13 + Location12 + Location11 + Location10 + Location09 + Location08 + Location07 + Location06 + Location05 + Location04 + Location03 + Location02 + Location01;
                	return Isbn13;
            elsereturn null;
           
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要将24真彩图像转换为索引彩色图像,可以使用聚类算法,如K-Means聚类。下面是一个Python示例代码,它使用scikit-learn库中的KMeans类进行聚类。 首先,导入必要的库和图像: ```python import numpy as np from scipy import misc from sklearn.cluster import KMeans # 读取图像 img = misc.imread('image.jpg') ``` 接下来,将图像转换为一个二维数组,其中每个像素由三个元素(红、绿、蓝)组成: ```python # 将图像转换为一个二维数组 rows, cols, bands = img.shape data = np.reshape(img, (rows * cols, bands)) ``` 然后,使用KMeans聚类算法将像素分成指定数量的簇。在这个例子中,我们将选择16个簇: ```python # 使用KMeans聚类算法将像素分成16个簇 kmeans = KMeans(n_clusters=16, random_state=0).fit(data) ``` 现在,我们可以使用每个簇的中心颜色来创建一个索引彩色图像。对于每个像素,我们将找到最接近的簇中心,并将该簇的索引作为该像素的值: ```python # 创建索引彩色图像 index_img = np.reshape(np.asarray([kmeans.predict([pixel])[0] for pixel in data]), (rows, cols)) ``` 最后,我们可以将索引彩色图像保存为图像文件: ```python # 将索引彩色图像保存为文件 misc.imsave('index_image.png', index_img) ``` 这就是将24真彩图像转换为索引彩色图像的基本过程。您可以根据需要修改代码,例如更改簇的数量或使用不同的聚类算法

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

陈勇劲

你的鼓励实我最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值