I hereby claim:
- I am proxpero on github.
- I am proxpero (https://keybase.io/proxpero) on keybase.
- I have a public key whose fingerprint is ABAF 07DE 0D7E EA58 7C60 1131 CB36 31B5 E8CA 11C7
To claim this, I am signing this object:
//: Cube digit pairs | |
//: [Problem 90](https://projecteuler.net/problem=90) | |
//: Xcode 7.0, Swift 2.0 | |
/*: | |
Each of the six faces on a cube has a different digit (0 to 9) written on it; the same is done to a second cube. By placing the two cubes side-by-side in different positions we can form a variety of 2-digit numbers. | |
For example, the square number 64 could be formed: | |
 | |
In fact, by carefully choosing the digits on both cubes it is possible to display all of the square numbers below one-hundred: 01, 04, 09, 16, 25, 36, 49, 64, and 81. |
//: [Pentagonal Numbers](https://projecteuler.net/problem=44) | |
/*: | |
Pentagonal numbers are generated by the formula, P[n]=n[3n−1]/2. The first ten pentagonal numbers are: | |
1, 5, 12, 22, 35, 51, 70, 92, 117, 145, ... | |
It can be seen that P[4] + P[7] = 22 + 70 = 92 = P[8]. However, their difference, 70 − 22 = 48, is not pentagonal. | |
Find the pair of pentagonal numbers, P[j] and P[k], for which their sum and difference are pentagonal and D = |P[k] − P[j]| is minimised; what is the value of D? | |
*/ |
//: [Sub-string Divisibility](https://projecteuler.net/problem=43) | |
/*: | |
The number, 1406357289, is a 0 to 9 pandigital number because it is made up of each of the digits 0 to 9 in some order, but it also has a rather interesting sub-string divisibility property. | |
Let d[1] be the 1st digit, d[2] be the 2nd digit, and so on. In this way, we note the following: | |
* d[2]d[3]d[4] = 406 is divisible by 2 | |
* d[3]d[4]d[5] = 063 is divisible by 3 | |
* d[4]d[5]d[6] = 635 is divisible by 5 | |
* d[5]d[6]d[7] = 357 is divisible by 7 |
// Swift 2.2 | |
extension NSColor { | |
convenience init(rgb: String) { | |
guard rgb.characters.count == 6 else { fatalError("Invalid rgb value: \(rgb)") } | |
let scanner = NSScanner(string: rgb) | |
var hexValue: UInt32 = 0 |
// Swift 2.1 | |
extension MutableCollectionType where Self.Generator.Element : Comparable { | |
/// Return a new sorted collection of the elements in `source` | |
/// using [Selection Sort](https://en.wikipedia.org/wiki/Selection_sort). | |
/// | |
/// Complexity O(n^2). | |
@warn_unused_result(mutable_variant="selectionSortInPlace") | |
public func selectionSort() -> Self { |
// Swift 2.1 | |
extension MutableCollectionType where Self.Generator.Element : Comparable { | |
/// Return a new sorted collection of the elements in `source` | |
/// using [Insertion Sort](https://en.wikipedia.org/wiki/Insertion_sort). | |
/// | |
/// Complexity O(n^2). | |
@warn_unused_result(mutable_variant="insertionSortInPlace") | |
public func insertionSort() -> Self { |
// Swift 2.1 | |
extension MutableCollectionType where Self.Generator.Element : Comparable, Self.Index == Int { | |
/// Return a new sorted collection of the elements in `source` | |
/// using [Shell Sort](https://en.wikipedia.org/wiki/Shellsort). | |
/// | |
/// Complexity O(n^(3/2)). | |
@warn_unused_result(mutable_variant="shellSortInPlace") |
// Swift 2.1 | |
extension Array where Element : Comparable { | |
private func merge(var left: Array<Element>, var _ right: Array<Element>) -> Array<Element> { | |
var result: Array<Element> = [] | |
while !left.isEmpty && !right.isEmpty { | |
// As described in: http://proxpero.com/2017/02/14/an-implementation-of-md5/ | |
extension Collection where Iterator.Element == UInt8 { | |
/// Returns the md5 hash of self. | |
public var md5: String { | |
return self.md5Digest.lazy.reduce("") { | |
var s = String($1, radix: 16) | |
if s.characters.count == 1 { | |
s = "0" + s |
I hereby claim:
To claim this, I am signing this object: