精华内容
下载资源
问答
  • 晓查 发自 凹非寺 量子 报道 | 公众号 QbitAI现在只需拍张照片,就能快速解决数独问题了。数独对计算机来说不是什么难事,但就是这样一个“平平无奇”的项目却登上了GitHub今日的热榜。这个登上热榜的项目,名字就...

    158d3c17ba53c318d24c4d15522d7d23.png
    晓查 发自 凹非寺
    量子位 报道 | 公众号 QbitAI

    现在只需拍张照片,就能快速解决数独问题了。

    数独对计算机来说不是什么难事,但就是这样一个“平平无奇”的项目却登上了GitHub今日的热榜。

    这个登上热榜的项目,名字就叫AI Sudoku,其实就是用AI里的计算机视觉,把照片变成计算机能看懂的网格和数字。

    16093723e3aae1ce150250a984f9a076.png

    接下来求解数独问题当然不难。重要的是,在这个过程中,我们也学习到了一些常用的计算机图片处理算法。

    拍张照片解数独

    智能数独求解器(Smart Sudoku Solver)的安装使用并不复杂,只需把项目代码克隆到本地即可。

    Windows系统下支持图形化界面,把拍摄图片传输到电脑上就能给出答案。

    首次运行需要连接网络下载MNIST数据集,训练模型并创建knn.sav文件,整个过程可能需要5~10分钟,之后就可以离线运行了。

    pythonRun.py

    运行上面的代码后,将显示KNN算法的训练结果

    4e049d60a3af23821f1a2bb9c1b5c09c.png

    之后将很快出现GUI界面,选择上传你拍摄的数独谜题图片。

    d996cc5f3fac21c9438d7aa76175373d.png

    一直点击下一步,就能得到这道题的答案:

    e69fbdc9376f94702c204bf860366e29.png

    原理

    作者在程序中提供了卷积神经网络k近邻两种算法,供你选择。

    运行应用程序之前,只需将Run.py文件中的modeltype变量设置为“CNN”或“KNN”。默认情况下,程序设置为“ KNN”,而且现阶段使用KNN可以获得更高的准确性。

    '''Runthisfiletoruntheapplication'''fromMainUIimportMainUIfromCNNimportCNNfromKNNimportKNNimportos#Changethemodeltypevariablevalueto"CNN"tousetheConvolutionalNeuralNetwork#Changethemodeltypevariablevalueto"KNN"tousetheKNearestNeighboursClassifiermodeltype="KNN"

    在我们点击“下一步”的过程中,程序展示了图片处理的步骤。

    首先是对图片进行高斯模糊处理,去除噪声和其他细节。

    593b21ca4f1c9b7ad9e963ebb1566205.png

    接下来,生成一张清晰的扫描图。由于一张图片中不同区域的光照,采用自适应高斯阈值的方法可以避免这一问题:

    34f927164b32dee6e3e0d30a3641d9cb.png

    反转图片,让文字和网格都变成白色,背景变成黑色。

    f2012ba4eff5bf690ee3f128d8e48148.png

    之后找出边缘的四条线,通过这四条线,将拍到的数独题目变成一张正方形图片。

    6708e62b22e0a5687c3f870b2803fccc.png

    最后将图片切割成81个小块,识别出每个小块里的数字。

    传送门

    求解数独问题并不是很难,这个开源项目的作用其实是帮你了解图像识别和处理的各种算法,例如高斯模糊自适应高斯阈值等等。

    项目对这些算法的名称和介绍都做了适当的加粗处理,如果你对这些感兴趣,不妨前去观摩学习一下。

    源代码地址:

    https://github.com/neeru1207/AI_Sudokugithub.com

    — 完 —

    量子位 · QbitAI

    վ'ᴗ' ի 追踪AI技术和产品新动态

    戳右上角「+关注」获取最新资讯↗↗

    如果喜欢,请分享or点赞吧~比心❤

    展开全文
  • 晓查 发自 凹非寺 量子 报道 | 公众号 QbitAI现在只需拍张照片,就能快速解决数独问题了。数独对计算机来说不是什么难事,但就是这样一个“平平无奇”的项目却登上了GitHub今日的热榜。这个登上热榜的项目,名字就...

    晓查 发自 凹非寺
    量子位 报道 | 公众号 QbitAI

    现在只需拍张照片,就能快速解决数独问题了。

    数独对计算机来说不是什么难事,但就是这样一个“平平无奇”的项目却登上了GitHub今日的热榜。

    这个登上热榜的项目,名字就叫AI Sudoku,其实就是用AI里的计算机视觉,把照片变成计算机能看懂的网格和数字。

    8ad4ab8171c26a384f3d8d6de6f24af4.png

    接下来求解数独问题当然不难。重要的是,在这个过程中,我们也学习到了一些常用的计算机图片处理算法。

    拍张照片解数独

    智能数独求解器(Smart Sudoku Solver)的安装使用并不复杂,只需把项目代码克隆到本地即可。

    Windows系统下支持图形化界面,把拍摄图片传输到电脑上就能给出答案。

    首次运行需要连接网络下载MNIST数据集,训练模型并创建knn.sav文件,整个过程可能需要5~10分钟,之后就可以离线运行了。

    python Run.py

    运行上面的代码后,将显示KNN算法的训练结果

    1f9338a5daf744d8aa3c833d9c5779af.png

    之后将很快出现GUI界面,选择上传你拍摄的数独谜题图片。

    63adc89efd5ce07fd6821901a01cc1ea.png

    一直点击下一步,就能得到这道题的答案:

    12083621ed00f9ff3cc626c71db8c2a4.png

    原理

    作者在程序中提供了卷积神经网络k近邻两种算法,供你选择。

    运行应用程序之前,只需将Run.py文件中的modeltype变量设置为“CNN”或“KNN”。默认情况下,程序设置为“ KNN”,而且现阶段使用KNN可以获得更高的准确性。

    '''Run this file to run the application'''from MainUI import MainUIfrom CNN import CNNfrom KNN import KNNimport os# Change the model type variable value to "CNN" to use the Convolutional Neural Network# Change the model type variable value to "KNN" to use the K Nearest Neighbours Classifiermodeltype = "KNN"

    在我们点击“下一步”的过程中,程序展示了图片处理的步骤。

    首先是对图片进行高斯模糊处理,去除噪声和其他细节。

    f7e6c8c5c3f25c249ae3ecf68dcd7bf1.png

    接下来,生成一张清晰的扫描图。由于一张图片中不同区域的光照,采用自适应高斯阈值的方法可以避免这一问题:

    1d481118bf35d3c750f1bdc471b02ca3.png

    反转图片,让文字和网格都变成白色,背景变成黑色。

    711b85404cd24073f46569e1b8608b39.png

    之后找出边缘的四条线,通过这四条线,将拍到的数独题目变成一张正方形图片。

    ea54e9cfb8fcf21b5fdd65c09597fc07.png

    最后将图片切割成81个小块,识别出每个小块里的数字。

    传送门

    求解数独问题并不是很难,这个开源项目的作用其实是帮你了解图像识别和处理的各种算法,例如高斯模糊自适应高斯阈值等等。

    项目对这些算法的名称和介绍都做了适当的加粗处理,如果你对这些感兴趣,不妨前去观摩学习一下。

    源代码地址:
    https://github.com/neeru1207/AI_Sudoku

    — 完 —

    量子位 QbitAI · 头条号签约

    关注我们,第一时间获知前沿科技动态

    展开全文
  • 思路:用bitset记录某个是否在子集和出现,利用bitset对二进制快速大量操作(移位),通过已经求出的子集和求出剩余的子集和 参考代码: 1 #include <iostream> 2 #include <algorithm...

    题不知道怎么不见了,bzoj上已经没了3687这题了

     

    题意:给你一个n 然后输入n个数 求这n个数的所有子集的和的异或和

    思路:用bitset记录某个数是否在子集和中出现,利用bitset对二进制位的快速大量操作(移位),通过已经求出的子集和求出剩余的子集和

    参考代码:

     1 #include <iostream>
     2 #include <algorithm>
     3 #include <string.h>
     4 #include <map>
     5 #include <bitset>
     6 #include <stdio.h>
     7 #include <vector>
     8 #define ll long long
     9 using namespace std;
    10 
    11 int main()
    12 {
    13     ll n,x,ans,sum;
    14     while(~scanf("%I64d",&n))
    15     {
    16         bitset<200005>b;
    17         b[0]=1;
    18         sum=ans=0;
    19         for(ll i=0; i<n; i++)
    20         {
    21             scanf("%I64d",&x);
    22             b^=b<<x;
    23             sum+=x;
    24         }
    25         for(ll i=1; i<=sum; i++)
    26         {
    27             if(b[i]) ans^=i;
    28         }
    29         printf("%I64d\n",ans);
    30     }
    31     return 0;
    32 }

     

    转载于:https://www.cnblogs.com/max88888888/p/5986553.html

    展开全文
  • 一个的整数次幂,是我们在计算中经常用到的,但是怎么可以在 \mathcal{O}(\log (n))O(log(n)) 的时间内算出结果呢?代码框中的代码是一种实现,请分析并填写缺失的代码,求 x^y \mod pxymodp 的结果。 解题...

    一个数的整数次幂,是我们在计算中经常用到的,但是怎么可以在 \mathcal{O}(\log (n))O(log(n)) 的时间内算出结果呢?

    代码框中的代码是一种实现,请分析并填写缺失的代码,求 x^y \mod pxy

    modp 的结果。                       

    解题思路: 代码填空题

    1.y&1: 按位与运算,数字按位与1,如果=1,则数字为奇数,=0数字为偶数

    import java.util.*;
    public class Main {
        public static int pw(int x, int y, int p) {
            if (y == 0) {
                return 1;
            }
            int res = pw(x,y/2,p)*pw(x,y/2,p)%p;
            if ((y & 1) != 0) {
                res = res * x % p;
            }
            return res;
        }
        public static void main(String[] args) {
            Scanner cin = new Scanner(System.in);
            int x = cin.nextInt();
            int y = cin.nextInt();
            int p = cin.nextInt();
            System.out.println(pw(x, y, p));
        }
    }
    

    展开全文
  • 蜻蜓FM笔试总结

    千次阅读 2013-10-11 15:50:58
    遍历二叉树时,叶子到根节点的距离怎么计算 两台主机传输一个二叉树,怎么...一个100亿个整形数字的文件,取文件中的中位数,内存不超过512MB。 快速排序的空间复杂度 死锁是针对什么情况 一个递归函数的时间复杂度问题
  • 得到单元格编号组最大的或最小的 标记出3个最大最小值 取前五名,后五名的方法 如何用公式求出最大值所在的行? 求多个最高分 如何求多条件的平均值 想求出第三大之数值 【查询和查找引用】 查找顺序公式 怎样...
  • 同时支持表达式,自动计算合计等功能,使计算工作量大大降低 开发效率很高,傻瓜式在线报表设计,一分钟设计一个报表,又简单又强大 支持 ECharts,目前支持28种图表,在线拖拽设计,支持SQL和API两种数据源 支持...
  • 129 5.5.2 串的链式存储结构 131 5.6 朴素的模式匹配算法 131 主串为S="00000000000000000000000000000000000000000000000001",而要匹配的子串为T="0000000001",……在匹配时,每次都得将T字符循环到最后一才...
  • EXCEL函数公式集

    热门讨论 2010-03-16 03:26:38
    得到单元格编号组最大的或最小的 标记出3个最大最小值 取前五名,后五名的方法 如何用公式求出最大值所在的行? 求多个最高分 如何求多条件的平均值 想求出第三大之数值 【查询和查找引用】 查找顺序公式 怎样...
  • l 第5节:Excel快速使用函数计算不同区域数据 l 第6节:Excel单元格超长内容不能显示全巧妙设置 l 第7节:巧妙运用之Excel单元格自动快速输入带有小数点的数值 l 第8节:Excel巧妙使用...
  • 即0x9a9f时,将二进制序列左移16,即为0x9a9f(0 0 0 0),实际上该二进制序列可拆分为0x9a00(0 0 0 0) + 0x009f(0 0 0 0),分析计算时和上面的步骤一样,唯一不同的是计算中上一步的余数CRC要乘以2的八次方参与下...
  • 5.1.2 使用“求和“列表快速统计个与平均值 5.1.3 在状态栏中快速查看基本统计结果 5.2 求解计算结果的公式 5.2.1 公式的基本元素 5.2.2 四公式的运算符 5.2.3 公式的输入 文秘应用 计簟商品销售金额 5.2.4 公式...
  • 3.5.4 在一个文件中有10G个整数,乱序排列,要求找出中位数。内存限制为2G。 3.5.5 时分秒针在一天之类重合多少次?(24小时) 3.5.6 将多个集合合并成没有交集的集合。 3.5.7 平面内有11个点,由它们连成48条...
  • Visual Studio程序员箴言--详细书签版

    热门讨论 2012-10-16 20:37:39
    技巧2.26 自定义“最近的文件”列表显示的项(以及在何处找到这些列表) 44 2.3 书签 45 管理书签 45 技巧2.27 设置书签并在多个书签之间导航 45 技巧2.28 在“书签”窗口,如何在书签文件夹之间导航 ...
  • c语言编写单片机技巧

    2009-04-19 12:15:17
    最近几年高频电路与数位电路共享相同电路板,构成所谓的混载电路系统似乎有增加的趋势,类似如此的设计经常会造成数位电路动作时,高频电路却发生动作不稳定等现象,其中原因之一是数位电路产生的噪讯,影响高频电路...
  • 6.23 sizeof返回的大小是以字节计算的,怎样才能判断数组有多少个元素呢? 第7章 内存分配 基本的内存分配问题 7.1 为什么这段代码不行?char*answer;printf("Typesomething:\n");gets(answer);printf(...
  • 《你必须知道的495个C语言问题》

    热门讨论 2010-03-20 16:41:18
    《你必须知道的495个C语言问题》以问答的形式组织内容,讨论了学习或使用C语言的过程经常遇到的一些问题。书列出了C用户经常问的400多个经典问题,涵盖了初始化、数组、指针、字符串、内存分配、库函数、C预...
  • 1.4 新的64机上的64类型是什么样的? 3 指针声明 3 1.5 这样的声明有什么问题?char *p1, p2; 我在使用p2的时候报错了。 3 1.6 我想声明一个指针,并为它分配一些空间,但却不行。这样的代码有什么问题?...
  • 但是怎么解决快速查找的问题,尤其是在有大量数据存在时?如果查找的时间复杂度还不如链表,那就没有意义了。 我们知道在一个排好序的数组进行二分查找的时间复杂度是 O(logn), 是非常高效的&#...
  • 11、嵌入式系统经常要用到无限循环,你怎么样用C编写死循环呢? 答: 这个问题用几个解决方案。我首选的方案是: while(1) { } 一些程序员更喜欢如下方案: for(;;) { } 13、关于内存对齐的问题以及sizof()...
  • C#微软培训教材(高清PDF)

    千次下载 热门讨论 2009-07-30 08:51:17
    第四章 据 类 型 .28 4.1 值 类 型 .28 4.2 引 用 类 型 .33 4.3 装箱和拆箱 .39 4.4 小 结 .42 第五章 变量和常量 .44 5.1 变 量 .44 5.2 常 量 .46 5.3 小 结 .47 第六章 类 型 转 换 .48 ...
  • C++程序员面试宝典

    热门讨论 2013-04-01 13:36:19
    许多开发者对C/C++语言及其底层原理掌握不牢固,在面试过程经常漏洞百出,无法取得好成绩。而招聘单位为了得到高素质的员工往往采用各种形式的面试考察求职者,这让面试难度大大增加。求职者要想成功应聘,不仅...
  • C#微软培训资料

    2014-01-22 14:10:17
    第四章 据 类 型 .28 4.1 值 类 型 .28 4.2 引 用 类 型 .33 4.3 装箱和拆箱 .39 4.4 小 结 .42 第五章 变量和常量 .44 5.1 变 量 .44 5.2 常 量 .46 5.3 小 结 .47 第六章 类 型 转 换 .48 ...
  • 主串为s=”00000000000000000000000000000000000000000000000001”,而要匹配的子串为t=”0000000001”,……在匹配时,每次都得将t字符循环到最后一才发现,哦,原来它们是不匹配的。 5.7kmp模式匹配算法 135 ...
  • o 2.2 64 机上的 64 类型是什么样的? o 2.3 怎样定义和声明全局变量和函数最好? o 2.4 extern 在函数声明是什么意思? o 2.5 关键字 auto 到底有什么用途? o 2.6 我似乎不能成功定义一个链表。我试过 ...
  • 列举了很多编程建议,其实就是告诉怎样去写好代码,你需要从能写代码(入门)过渡到会写代码,这本书值得一看。如果你的编码经验比较少,那这边书你可以稍微往后延,因为看完了你可能没有感同身受。 《Java8 ...
  • 主串为s=”00000000000000000000000000000000000000000000000001”,而要匹配的子串为t=”0000000001”,……在匹配时,每次都得将t字符循环到最后一才发现,哦,原来它们是不匹配的。 5.7kmp模式匹配算法 135 ...
  • 大话数据结构

    2019-01-10 16:35:22
    主串为s=”00000000000000000000000000000000000000000000000001”,而要匹配的子串为t=”0000000001”,……在匹配时,每次都得将t字符循环到最后一才发现,哦,原来它们是不匹配的。 5.7kmp模式匹配算法 135 ...
  • 大话数据结构 程杰

    2018-09-01 10:06:43
    主串为s=”00000000000000000000000000000000000000000000000001”,而要匹配的子串为t=”0000000001”,……在匹配时,每次都得将t字符循环到最后一才发现,哦,原来它们是不匹配的。 5.7kmp模式匹配算法 135 ...

空空如也

空空如也

1 2 3
收藏数 55
精华内容 22
关键字:

怎么快速计算中位数