projecteuler

People often ask me "how can I get into competitive programming?"

人们经常问我“我如何进入竞争性编程领域?”

My answer has always been simple: practice as many algorithm and data structures problems as you can.

我的答案一直很简单:尽可能多地练习算法和数据结构问题。

But today, I have something more concrete for you. A challenge that will expand your computer science and math knowledge – all while giving you a ton of programming practice.

但是今天,我为您提供一些更具体的信息。 一项挑战将扩展您的计算机科学和数学知识,同时为您提供大量的编程实践。

It's called #ProjectEuler100. And a lot of people have already publicly accepted the challenge.

它称为#ProjectEuler100。 许多人已经公开接受了挑战。

The challenge is named after Leonhard Euler, one of the most prolific mathematicians in history.

这项挑战以历史上最多产的数学家之一莱昂哈德·欧拉(Leonhard Euler)命名。

It represents learning on hard mode. Finishing this challenge will demand creativity and problem solving skills you didn't even know you had. It will turn you into an incredibly resourceful developer. It will give you the confidence to tackle the most ambitious projects.

它代表在硬模式下学习。 完成这一挑战将需要您甚至不知道拥有的创造力和解决问题的能力。 这将使您成为一个非常聪明的开发人员。 这将使您有信心应对最雄心勃勃的项目。

In short, the #ProjectEuler100 challenge will be a crucible where your Super Saiyan self is forged, ready to unleash your latent engineering genius on the world.

简而言之,#ProjectEuler100挑战将是您打造超级赛亚人自我的一个坩埚,随时可以释放您潜在的工程天才。

什么是欧拉计划? (What is Project Euler?)

Project Euler is a website created back in 2001. It hosts a collection of around 600 different algorithm problems that get progressively harder, to the point where even people with math PhD's still struggle with them.

欧拉计画(Project Euler)是一个早在2001年建立的网站。它收录了约600种不同的算法问题,这些问题越来越难解决,以至于即使拥有数学博士学位的人也仍在与之斗争。

This said, the first 100 problems are totally do-able by a new developer. Thousands of people have completed the first 100 Project Euler problems over the years.

也就是说,前100个问题完全可以由新开发人员解决。 这些年来,成千上万的人已经完成了Euler项目的前100个问题。

It's just brutally hard. Like... Dark Souls hard.

这简直是​​残酷的。 像...辛苦的黑暗之魂。

I love the Project Euler problems. I used them extensively when I was first learning to code. I love these so much that we've added these Project Euler problems to freeCodeCamp's Interview Preparation section.

我喜欢欧拉计划的问题。 当我第一次学习编码时,我广泛使用它们。 我非常喜欢这些内容,以至于我们已将这些Euler项目问题​​添加到freeCodeCamp的采访准备部分 。

These will really wrack your brain. But they will be rewarding. They are hard, but fair. And if you're willing to swallow your pride and go down a few Wikipedia rabbit holes, you can solve them, too.

这些真的会伤脑筋。 但是他们会有所收获的。 他们很难,但公平。 而且,如果您愿意放下自己的自尊心并在Wikipedia上找到一些兔子漏洞,也可以解决它们。

So what do you think. Are you up for solving the first 100 Project Euler problems? Here are the rules.

所以你怎么看。 您准备解决前100个Euler项目问题​​吗? 这是规则。

ProjectEuler100挑战赛的规则 (The Rules of the ProjectEuler100 Challenge)

I've boiled everything down to these 6 simple rules all participants must follow.

我将所有内容简化为所有参与者必须遵循的这6条简单规则。

  1. Tweet out a photo of yourself giving a thumbs-up and announcing that you are committing to the #ProjectEuler100 challenge.鸣叫一张自己竖起大拇指并宣布您要参加#ProjectEuler100挑战的照片。
  2. Create a GitHub repository.创建一个GitHub存储库。
  3. Each time you complete a challenge, add your solution to your GitHub repository and tweet a link to it using the #ProjectEuler100 hashtag.每次完成挑战时,都将解决方案添加到GitHub存储库中,并使用#ProjectEuler100主题标签在其上鸣叫链接。
  4. Then scroll through the #ProjectEuler100 hashtag and give supportive feedback on at least 2 tweets from other developers.然后滚动#ProjectEuler100主题标签,并至少从其他开发人员获得2条推文上的支持性反馈。
  5. Move on to the next Project Euler challenge. You can't skip ahead. You have to complete all 100 problems in order. But you can use any programming language you want to solve these.继续进行下一个欧拉计划挑战。 你不能跳过。 您必须按顺序完成所有100个问题。 但是您可以使用任何要解决这些问题的编程语言。
  6. Once you've finished all 100 of them, tweet out a celebration photo of yourself with your laptop open to your GitHub repo.完成所有100个步骤后,在笔记本电脑上打开GitHub存储库,发布自己的庆祝照片。

我在哪里编码? (Where do I do my coding?)

You can use the 20-year-old Project Euler website itself.

您可以使用拥有20年历史的Euler项目网站。

Or you can use the freeCodeCamp.org version - which lets you code right in your browser, and has built-in tests.

或者,您可以使用freeCodeCamp.org版本 -该版本可让您直接在浏览器中进行编码,并具有内置测试。

Or if you're feeling spicy, you can build your own website for solving these challenges. (All of the Project Euler problems are Creative Commons-licensed and are free for non-commercial use.)

或者,如果您感到麻辣,则可以建立自己的网站来解决这些挑战。 (所有的Euler项目问题​​都是知识共享许可的,并且可以免费用于非商业用途。)

为什么我需要将解决方案放在GitHub上? (Why do I need to put my solutions on GitHub?)

Putting your solutions into GitHub (Or GitLab or BitBucket) accomplishes several things:

将您的解决方案放入GitHub(或GitLab或BitBucket)可以完成几件事:

  1. It gives you a nice public record of your progress that you can share with other people.它为您提供了一份很好的公开记录,您可以与他人共享。
  2. It will make your GitHub profile look super active for any employers / clients looking to hire you.这将使您的GitHub个人资料对于希望雇用您的任何雇主/客户而言都显得异常活跃。
  3. It gives you something you can show to your grandkids.它为您提供了可以展示给孙子孙女的东西。

我可以看看别人的解决方案吗? (Can I look at other people's solutions?)

You can look at other people's solutions for problems that you yourself have already solved.

您可以查看别人对您自己已经解决的问题的解决方案。

Each challenge can be solved in many different ways - some more elegant than others. And you can compliment other people on their approaches.

每个挑战都可以通过许多不同的方式来解决-有些挑战比其他挑战更为优雅。 您可以称赞其他人的方法。

This said, it's 2020. The reality is that solutions to these problems are already peppered across the web. You may accidentally stumble upon a solution if you're searching for hints.

就是说,这是2020年。事实是,针对这些问题的解决方案已经在网络上广泛使用。 如果要搜索提示,可能会偶然发现解决方案。

If you are exposed to the solution of a challenge that you have not yet completed yourself, you absolutely should not use the code you see there. You need to come up with code solutions for each of these problems yourself.

如果您面临尚未完成的挑战的解决方案,则绝对不应使用在此处看到的代码。 您需要自己针对每个问题提出代码解决方案。

我可以直播自己的尝试吗? (Can I live stream my attempts?)

Yes. By all means. As I said, the solutions to these problems are already all over the web. And many of the people who would tune in on Twitch or YouTube won't be doing the challenge - they'll just enjoy watching programming streams in general.

是。 一定。 正如我所说,这些问题的解决方案已经遍布整个网络。 而且,许多愿意关注Twitch或YouTube的人都不会面临挑战-他们只会喜欢看一般的节目播客。

So don't worry about "spoiling" anything during your live streams.

因此,不必担心在直播过程中会“撒谎”任何东西。

We will be live streaming #ProjectEuler100 attempts on freeCodeCamp's YouTube channel.

我们将在freeCodeCamp的YouTube频道上直播#ProjectEuler100尝试。

This said, if you are creating video guides or articles that people would use as a reference to these problems, I encourage you to include spoiler warnings. People want hints so they can get unstuck - not full solutions.

这就是说,如果您要创建视频指南或文章以供人们参考以解决这些问题,则建议您添加扰流板警告。 人们想要提示,以便他们可以解决-不是完整的解决方案。

我需要多快解决这些问题? (How fast do I need to solve these?)

To quote a great man:

引用一个伟人:

"It does not matter how slowly you go as long as you do not stop." - Leonhard Euler

“只要你不停下来,走多慢都没关系。” -莱昂哈德·欧拉

(OK, that quote is commonly attributed to Confucius. But all kinds of quotes get mis-attributed to Confucius, so I'm misattributing this quote to my boy Euler.

projecteuler_介绍#ProjectEuler100挑战:编码成就的“黑暗灵魂”相关推荐

  1. 2020-12-14 Python PyCharm新建项目自动添加介绍和utf-8编码

    Python PyCharm新建项目自动添加介绍和utf-8编码 你是不是觉得每次新建项目都要写一次# coding:utf-8,感觉特烦人 呐!懒(fu)人(li)教程来啦,先看效果图吧 如图进入设 ...

  2. java length()函数_小猿圈介绍java函数式编码结构及优势

    对于java大家都已经不陌生了吧,今天小猿圈Java讲师就分享一篇关于java函数式编码结构及优势的知识点,希望对于学习java的你有一定的帮助,想学习就需要积累. 探讨三种下一代JVM语言:Groo ...

  3. cacti不能实时刷新流量图_介绍一种编码帧内刷新算法

    0.引言 本文主要介绍一种帧内刷新算法,解决I帧太大带来的延迟问题,可以在调优时,值得借鉴. 帧内刷新技术避免 I 帧尖峰带来的带宽压力,可以有效地降低视频通信中的缓冲区延迟.帧内刷新算法是一种视频错 ...

  4. socket介绍--数据的编码与解码

    socket 介绍 思考 不同电脑上的进程之间如何通信? 首先通过 IP 地址找到网络中对应的电脑,然后通过传输协议和端口号来确定这个进程(运行起来 的软件),那么数据如何传输需要使用 socket ...

  5. 末日边境_永恒的末日是变相的第一人称黑暗灵魂

    末日边境 Doom (2016) was one of the most successful relaunches of a major franchise alongside Assassin's ...

  6. 约会中如何聊天,两种思维的切换 成就伟大的灵魂

    在交谈的时候,愿意聊天的人总喜欢把话题说得更具体,而不想聊天的人则会顺着话题的方向直接概括出结论,言下之意是"我已经都知道,你不用再多说." 在魔鬼约会学里,我们把概括化的语言模式 ...

  7. projecteuler_2020更新:#ProjectEuler100和#AWSCertified挑战

    projecteuler Every year around New Year's, I encourage people to commit to the #100DaysOfCode challe ...

  8. 音视频编解码技术之视频编码基本概念介绍

    视频压缩名字解释: 1.有损和无损压缩:在视频压缩中有损(Lossy )和无损(Lossless)的概念与静态图像中基本类似.无损压缩也即压缩前和解压缩后的数据完全一致.有损压缩意味着解压缩后的数据与 ...

  9. Golomb及指数哥伦布编码原理介绍及实现

    2017年的第一篇博文. 本文主要有以下三部分内容: 介绍了Golomb编码,及其两个变种:Golomb-Rice和Exp-Golomb的基本原理 C++实现了一个简单的BitStream库,能够方便 ...

最新文章

  1. 对网络体系变革的思考
  2. 怎样给RCP程序添加依赖的JAR包
  3. Hadoop大数据--Mapreduce程序运行并发度
  4. linux下GPRS模块的应用程序
  5. 解决windows下的mysql匿名登陆无法使用mysql数据库的问题
  6. 4米乘以12米CAD图_CAD套图技巧大揭秘及坐标问题小结
  7. 计算机无法访问iTunes,PC端itunes识别不了iphone怎么办 itunes无法识别插入iPhone解决方法...
  8. COCO2017 test-dev评估
  9. (python版)《剑指Offer》JZ58:对称的二叉树
  10. 河北工业大学c语言寻宝游戏,计算机技术基础(c语言)课程设计 寻宝游戏.doc
  11. oeasy教您玩转vim - 2 - # 使用帮助
  12. 白马非马----继承 (转)
  13. x64dbg 自动化控制插件
  14. 超便捷好用的-圆形花瓣加载滚动图片插件spin.js
  15. 想给MAC电脑换个壁纸?苹果电脑壁纸桌面怎么换?
  16. java do while用法_Java do-while循环
  17. 第十一章:纳什均衡的计算
  18. C. Ehab and Path-etic MEXs-Codeforces Round #628 (Div. 2)
  19. 数据库实验(进一步了解Sql server企业管理器)实验报告
  20. 模式识别知识结构图(思维导图)

热门文章

  1. JAVA——两个List集合求交集、并集和差集(去重)模板
  2. Linux—scp或ssh出现WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
  3. 案例 员工演奏乐器 c# 1614191419
  4. 用按钮控制歌单的上一曲和下一曲 0130 winform
  5. django-后台传图0912
  6. 移动端的开发-视口-适配
  7. Composer自动加载(一)
  8. Tensorflow 相关概念
  9. 打印iphone支持的所有字体
  10. layer.open组件获取弹出层页面变量、函数