Взвешиваем сливы с помощью Swift


Оглавление (нажмите, чтобы открыть):

Как взвесить сливы с помощью iPhone 6s [видео]

Разработчик Симон Гладман продемонстрировал возможность использования дисплеев iPhone 6s для измерения веса слив. Ролик размещен на его канале в YouTube.

Речь идет об использовании технологии 3D Touch, реализованной в аппаратах Apple последнего поколения. Система предлагает принципиально новый способ взаимодействия с устройством за счёт распознавания силы давления на дисплей. Благодаря 3D Touch появляется возможность реализации новых функций управления: к примеру, смартфон выполняет одно действие при лёгком прикосновении, и другое — при более сильном нажатии в той же точке. С помощью 3D Touch можно также определять вес предметов.

«Короткая видеодемонстрация приложения, которое я сделал с помощью iPhone 6s 3D touch, чтобы сравнить вес слив (относительно максимально возможного усилия в телефоне). Более тяжелая слива подсвечивается желтым цветом», – пояснил разработчик.

Приложение Plum-O-meter будет доступно только пользователям устройств с джейлбрейком. Маловероятно, что Apple допустит его в официальный каталог, так как в программе используются закрытые API. Тем не менее, оно наглядно демонстрирует возможности технологии 3D Touch.

Посмотреть демонстрацию Plum-O-meter можно на видео ниже:

ВИДЕО: Зачем покупать Apple iPhone 6s? Чтобы взвешивать сливы!

Как утверждает автор, к созданию программы его подтолкнула суровая жизнь: делясь со своей прекрасной половинкой сливами, он не всегда мог сказать, какая из них больше. А тут — такая оказия — Apple выпустила смартфон с технологий 3D Touch, которая распознает силу нажатия на дисплей! Почему бы не использовать экран как весы?! И вот, идея реализована:

Как видно, программа показывает, какая из слив тяжелее, но не показывает вес. В принципе, имея гирьки весов, можно узнать и вес каждой сливы, хотя добиться от iPhone точности электронных весов, по словам автора, невозможно. Так что эта программка показывает, так это способность iPhone 6s честно «отрабатывать» сразу несколько нажатий на экран одновременно, при этом имея представления о том, какие силы приложены к каждой из точек.

К сожалению для не программистов, программу нельзя скачать из App Store, ибо Apple официально запрещает использовать экран iPhone как весы и не пропускает в магазин любые утилиты, которые добавляют в него эту функциональность. Но тех, у кого есть лицензия разработчика и познания в языке Swift, могут забрать код с GitHub и скомпилировать себе собственную версию. Или, еще лучше — не подглядывая в оригинальный пост автора, где все объяснено, попробовать реализовать задачу самостоятельно.

LoadError — cannot load such file — nanaimo

Если при попытка установить какой либо pod у вас терминал выдает такую ошибку, то вот рецепт для ее устранения:

gem list | grep nanaimo //увидим nanaimo (0.2.3, 0.2.2)
sudo gem uninstall nanaimo -v 0.2.2

sudo gem uninstall nanaimo -> all
sudo gem install nanaimo
pod install -> наслаждайтесь. Все работает

iOS plist преобразование в словарь

Задача

Нужно загрузить данные из plist файла, перевести эти данные в словарь (Dictionary) и использовать этот словарь для вывода таблицы. В итоге, должно получится такое приложение:

Удалить одинаковые элементы из массива iOS на Swift 3

Задача

Нужно из массива удалить повторяющиеся элементы. При этом массив может содержать элементы любого типа.

Решение

Для удаления одинаковых элементов из массива следует написать универсальную функцию, которая принимает в качестве параметра аргумент типа «коллекция» и возвращает другой массив.

Внутри функции мы перебираем элементы исходного массива, и по одному проверяем содержание элемента в наборе added и если его там нет, до добавляем элемент в возвращаемый массив и в набор added. Как вы помните, в наборе не может быть двух одинаковых элементов, поэтому проверка на содержание в этом наборе является флагом добавления в возвращаемый массив.


UITableView swipe to delete и другие возможности

Задача

Создать проект, в котором отображается таблица. По жесту swipe нужно открывать список кнопок с различными действиями. Например удалить строку в таблице.

Глобальные переменные при программировании в iOS

В одном из комментариев на сайте, читатель поинтересовался каким образом следует работать с глобальными переменными. Он даже привел пример приложения, над которым он работает. Если я правильно понял, то это приложение опросник, которое по очереди задает вопросы, принимает ответы, суммирует результаты ответов и в конце выводит какой-то результат. Читатель сказал, что для каждого вопроса он использует отдельный контроллер, и соответсвенно хочет отловить ответы с каждого контроллера. Я не согласен с подобной реализацией такой задачи, но в любом случае изложу в данной статье несколько вариантов решения, которые я вижу. А также свой вариант реализации подобного опросника, при котором глобальная переменная с результатом и вовсе не понадобится.

iOS Преобразование голоcа в текст на Swift 3

В 2020 году на WWDC Apple представила Speech framework, полезный API для распознавания речи. Speech является основой, которая используется Siri для распознавания речи. Если посмотреть повнимательней, то можно найти много фреймворков распознавания речи, доступных на сегодняшний день, но они либо очень дорого стоят, либо отвратительно работают. В этом уроке мы создадим iOS приложение для преобразования речи в текст с помощью Speech.

Airdrop, UIActivityViewController или как сняь и отправить фото

Задача

Нужно написать приложение, с помощью которого можно сделать фотографию или выбрать фотографию из галереи, а затем отправить её по Airdrop или передать любому другому приложению, например мессенджеру или программе работы с электронной почтой.

Интерфейс будет не сложным, в центре будет UIImageView, которая будет отражать выбранную картинку, и три кнопки — захват фото с камеры, выбор фото из галереи, и кнопка отправить.

Приложение Весы для iPhone с использованием 3D Touch

После выхода на рынок iPhone 6s и iPhone 6s Plus с экранами, которые поддерживают технологию 3D Touch, а App Store практически сразу появилось приложение для взвешивая слив и персиков.

Не могу с уверенностью сказать почему именно этих фруктов, но могу сказать однозначно почему именно фруктов. Дело в том, что сенсор экрана iPhone работает по принципу определения утечки тока с поверхности сенсора, а для этой самой утечки нужен живой палец либо что-то, что обладает электрической емкостью. Думаю, каждый знает, что на пластиковые стилус или ноготь экраны i-девайсов не срабатывают. Именно поэтому взвесить на том приложении что-то металлическое не получалось. Но фрукты имеют электрическую емкость, на них срабатывает сенсор и нормально срабатывает непосредственно 3D Touch.
(далее…)

СКАЧАТЬ Программирование на языке SWIFT

InfoSlivka

Well-Known Member

Начальный и Продвинутый Уровень
Автор :
GeekBrains

Swift. Уровень 1
Современные технологии программирования под Apple на Swift 3, xcode 8

Swift — новый язык от Apple, появился в середине 2014 года . Несмотря на свою новизну, он стремительно развивается и включает в себя все лучшие конструкции программирования, заимствованные из множества современных языков.

Специалистов, знающих Swift, на рынке сейчас единицы. Этот курс поможет вам изучить синтаксические основы Swift и получить хороший опыт программирования на данном языке.

Swift. Уровень 2
Продвинутый курс


Какие основные особенности большинства современных мобильных приложений? Взаимодействие с сервисом. Отображение, и изменение данных на внешнем сервере!

Не бывает приложений без пользовательского интерфейса. Это лицо вашего проекта. С его помощью можно привлекать и удерживать пользователей. Реализовав связь с сервисом вы сможете организовать взаимодействие пользователей между собой , либо с вашим бизнесом. Обмен данными между пользователями, отображение товаров из каталога, турнирные таблицы, все это задачи сервера. Если необходимо минимизировать зависимость вашего приложения от интернет соединения или реализовать хранение данных даже после завершения приложения вам необходимо использовать постоянные хранилища данных, например Realm.

Мастер Йода рекомендует:  Webpack 4 практические рекомендации по настройке

Сколько брать сахара и сливы на варенье, если нет весов?

для варенья из слив надо кило сахара и кило сливы , очищеной от косточек. я добавляю еще сок одного лимона и одно , разрезаное на четверти яблоко ( для лучшего загустения.) 4 стакана сахара — один килограмм. Надо насыпать в кулек 4 стакана сахара, повесить на палку, положеную на трехлитровую банку, положеную на бок и на другой конец палки повесить другой кулек, наполненый сливами. Уравновесить, добавляя или забирая сливы из кулька. Банку можно заменить поленом или чем то похожим.

На 1 кг сливы берут 1 кг сахар и 1 стакан воды, если слива не сочная, тогда полтора стакана воды. Сливу на варенье варят в сиропе. Сначала сиропом из половины сахара заливают сливу. Дать постоять 10 часов. после сироп слить, добавить сахар и прокипятить. Снова залить сливы сиропом и варить 20 — 25 минут.

В 1 стакане 250 гр сахара 200 грамм, значит берем 5 стаканов сахара. И по весу столько берем сахара. Взвешиваем на руке, если немного ошибемся, ничего страшного.

Еще один рецепт варенья из слив.

1,3 — 1,5 кг сахара и 2 стакана воды. Если сливы не кислые добавть еще 2 грамм лимонной кислоты в последнюю варку.

Использование бинарного дерева в swift с помощью enum на примере OCR

Была цель создать приложение на mac, которое может распознавать текст кода с изображений и видео.

Хотелось сделать так, чтобы даже при большом объеме кода, текст распознавался менее, чем за секунду.

Проблема облегчается тем, что язык на котором пишут код всегда английский и ширина между всеми буквами одинаковая (моноширинный шрифт) — такие используются для программирования, и в этих шрифтах легко увидеть разницу между 1 и I, 0 и O и тд.

Если вкратце, то задача сводится к двум частям:

1. Нахождению самой буквы с ее границами

И с этим шикарно справился Vision, новый framework от Apple.

2. Распознавание буквы в заданных границах

Я решил пойти не хитрым способом и проверять определенные пиксели квадрата, в границах которого находится буквы (допустим: центр, углы, бока) и отталкиваясь от наличия или отсутствия там буквы, классифицировать что за буква.

Это часть так как все не поместилось бы, да и не нужно.

Как же перенести этот схематичный рисунок в код, так чтобы не закопаться в нем, и чтобы он был такой же наглядный?!

Вот здесь нам на помощь приходит бинарное дерево. Вот его каркас.

Теперь на основе него мы можем перенести весь наш рисунок в код.

Вот как бы выглядел кусочек дерева побольше.

Можно все очень схематично разложить и легко найти нужную букву.


И последний момент, вот как выглядит сама модель, в которой происходит вся работа.

В это дерево мы передаем класс LetterExistenceChecker, который отвечает за проверку наличия пикселя буквы в определенной точке в границах нужного квадрата. Конечно, я опустил множество деталей, иначе бы статья получилась слишком громоздкой. И здесь не только эти два этапа, которые были упомянуты в статье, но гораздо больше, но они были опущены, потому что цель была показать как использовать бинарное дерево и enum.

Вот демо того как работает программа, прошу заметить, что так как целью я ставил распознавание только текста с кодом, то я решил просто игнорировать весь остальной текст который не код, сделал так, чтобы прога искала только текст с кодом.

Взвешиваем сливы с помощью Swift

Десять мешков

Имеется 10 мешков монет. В одном мешке все монеты фальшивые. Подлинная монета весит 10 грамм, а Фальшивая монета весит 9 грамм. Как при помощи одного взвешивания на весах с делениями определить мешок с фальшивыми монетами?

Восемь мешков

У вас имеется 8 мешков с монетами, по 48 монет в каждом. В пяти мешках настоящие монеты, а в остальных – фальшивые. Фальшивые монеты на 1 грамм легче настоящих. С помощью одного взвешивания на точных весах определите все мешки с фальшивыми монетами, используя минимальное количество монет.

Новогодние шары

На новогодней ёлке висят три пары шаров: два белых, два голубых и два красных. Внешне шары одинаковые. Однако в каждой паре есть один лёгкий и один тяжёлый шар. Все лёгкие шары весят между собой одинаково, и так же все тяжёлые шары. С помощью двух взвешиваний на чашечных весах определите все лёгкие и все тяжёлые шары.

Девять мешков

Имеется девять мешков: восемь с песком и один с золотом. Мешок с золотом немного тяжелее. Вам даётся два взвешивания на чашечных весах, чтобы найти мешок с золотом.

27 теннисных мячей

Имеется 27 теннисных мячей. 26 весят одинаково, а 27-й немного тяжелее. Какое минимальное количество взвешиваний на чашечных весах гарантирует нахождение тяжёлого мячика?

Расколотая гиря

Купец уронил 40-фунтовую гирю, и она раскололась на 4 неравные части. Когда эти части взвесили, то оказалось, что вес каждой из них (в фунтах) – целое число. Более того, с помощью этих частей можно было взвесить на чашечных весах любой вес (представляющий собой целое число) до 40 фунтов. Сколько весила каждая часть?

Гвозди в мешке

В мешке 24 кг гвоздей. Каким образом можно на чашечных весах без гирь отмерить 9 кг гвоздей?

Десять шляп

На столе лежит десять пронумерованных шляп. В каждой шляпе лежит по десять золотых монет. В одной из шляп находятся фальшивые монеты. Настоящая монета весит 10 граммов, а поддельная только 9. В помощь даны весы со шкалой в граммах. Как определить в какой из шляп находятся фальшивые монеты, используя весы только для одного взвешивания? Весы могут взвешивать не более 750 грамм.

81 монета

Имеется 81 монета одного достоинства. Из них одна фальшивая и она легче настоящей монеты. Как с помощью четырех взвешиваний на чашечных весах найти эту монету?


Головоломные весы

На двух рисунках чашечные весы находятся в равновесии. Как вы думаете, сколько груш надо использовать, чтобы уравновесить шесть апельсинов на третьих весах?

На двух рисунках чашечные весы находятся в равновесии. Как вы думаете, сколько груш надо использовать, чтобы уравновесить два яблока и один апельсин?

На двух рисунках чашечные весы находятся в равновесии. Как вы думаете, сколько груш надо использовать, чтобы уравновесить два яблока и два апельсина?

Сколько требуется апельсинов, чтобы уравнять весы на последней картинке. Доставлять предметы можно только на правую часть весов.

Сахар в пакетах

Имеется два пакета, один пустой, а в другом 9 кг сахара. Как за 3 взвешивания на чашечных весах с использованием гирек на 50г и 200г распределить сахар по пакетам в пропорции: 2кг в одном пакете и 7кг в другом?

2. Сахар в одном пакете снова разделить пополам по 2,25кг и рассыпать по пакетам (в одном пакете будет 2,25кг , а в другом 6,75кг).

3. При помощи двух гирек в сумме на 250г отделить 250г сахара от пакета с 2,25кг и переложить в другой пакет. В итоге в одном пакете будет 7кг, в другом 2кг сахара.
Закрыть решение.

4 монеты

Имеется 4 монеты, из которых одна фальшивая и она отличается от подлинных по весу или в большую или в меньшую сторону. Как определить фальшивую монету при 2 взвешиваниях на чашечных весах?

Две гири

Имеются стандартные весы с чашечками и две гири: 10 и 2 кг. Как с их помощью взвесить 3 кг слив?

68 монет

Есть 68 монет, все они разные по весу. Как за 100 взвешиваний найти самую легкую и самую тяжелую?

Испорченные весы

Среди 100 одинаковых на вид монет есть несколько фальшивых. Все фальшивые монеты весят одинаково, все настоящие – тоже, фальшивая монета легче настоящей. Имеются также весы (с двумя чашами без стрелки), на каждой чашке умещается только по одной монете. При этом весы слегка испорчены: если монеты разного веса, перевешивает более тяжёлая монета, а если одинакового – перевесить может любая чашка. Как с помощью этих весов найти хотя бы одну фальшивую монету?

Мастер Йода рекомендует:  Графический спам - 40% всех мусорных писем

Каждое трио взвешиваем между собой, получим 3 неравенства, в результате которых увидим, либо каждая монетка будет по одному разу весить меньше от других двух, либо два раза будет весить меньше других двух.

1>2 (возможны такие варианты: н=н, ф=ф, 2-фальшивка)

2>3 (н=н, ф=ф, 3- фальшивка)

такое возможно, если все три монетки имеют одинаковый вес вежду собой, то есть из них откладываем в сторонку любую одну

У 1 больше вероятность оказаться фальшивой, так что ее и откладываем.

И так проделываем с каждой из 33-х кучек, в результате отложим 11 монет +1, которая не попала ни в одну из кучек.


Эти 12 монет опять разделяем на 4 кучки по 3 монетки, проделываем те же манипуляции, в результате получим 4 монетки, разделяем на 1 кучку+1, та монетка из кучки, которая окажется легче, вновь откладываем и сравниваем с одинокой монеткой. Та, которая легче и будет фальшивой.
Закрыть решение.

80 монет

Имеется 80 монет, одна из которых фальшивая, причем она легче других. За какое наименьшее число взвешиваний на весах без гирь можно найти фальшивую монету?

Мудрец

Когда за доброе дело правитель страны решил наградить умного человека, тот пожелал взять столько золота, сколько весит слон. Но как же взвесить слона? В те времена не было таких весов. Что бы в подобной ситуации смогли придумать вы?

Пять предметов

Пять различных по весу предметов требуется расположить в порядке убывания их веса. Пользоваться можно только простейшими весами без гирь, которые позволяют лишь установить, какой из двух сравниваемых по весу предметов тяжелее. Как следует действовать, чтобы решить задачу оптимальным образом, то есть так, чтобы число взвешиваний было минимальным? Сколько взвешиваний придется при этом произвести?

Затем сравним два других предмета и обозначим более легкий D а более тяжелый — E: D

Пятый предмет обозначим C.

Третьим взвешиванием сравним предметы B и E. Обе возникающие здесь возможности приводят к аналогичным рассуждениям, поэтому мы ограничимся рассмотрением случая B

Четвертым взвешиванием сравним пятый предмет C с предметом B. Необходимо различать два случая:

В первом случае (B

Сравним (для этого понадобится пятое взвешивание) предметы C и E. Здесь также необходимо различать два возможных случая: E

Во втором случае (C

Сравним предметы A и C (пятое взвешивание). В обоих возможных случаях (A

Поскольку мы исчерпали все возможные случаи, то доказательство на этом заканчивается.
Закрыть решение.

Двое весов

Имеется 9 одинаковых монет, одна из которых фальшивая и по этой причине легче остальных. Мы располагаем двумя весами без гирь, позволяющими сравнивать по весу любые группы монет. Однако одни из имеющихся весов являются грубыми, на них нельзя отличить фальшивую монету от настоящей. Их точность не позволяет уловить разницу в весе. Зато другие весы точные. Но какие весы грубые, а какие точные — неизвестно. Как в этой ситуации с помощью трех взвешиваний определить фальшивую монету?

2000 шариков

Имеются 6 гирь весом 1, 2, 3, 4, 5 и 6 г. На них нанесена соответствующая маркировка. Однако есть основания считать, что при маркировке гирь допущена одна ошибка. Как при помощи двух взвешиваний на чашечных весах, на которых можно сравнить веса любых групп гирь, определить, верна ли имеющаяся на гирях маркировка?

8 монет

Имеется 8 с виду одинаковых монет. Одна из них фальшивая и известно, что она легче настоящей. Как с помощью всего лишь двух взвешиваний на чашечных весах найти фальшивую монету?


Головоломка Саладина

Эта история случилась давным-давно, еще во времена крестовых походов. Один из рыцарей был захвачен мусульманами в плен и предстал перед их предводителем — султаном Саладином, который объявил, что освободит пленника и его коня, если получит выкуп в 100 тысяч золотых монет. «О, великий Саладин, — обратился тогда к султану рыцарь, у которого за душой не было ни гроша, — ты лишаешь последней надежды. У меня на родине мудрому и находчивому пленнику дается шанс выйти на свободу. Если он решит заданную головоломку, его отпускают на все четыре стороны, если нет — сумма выкупа удваивается!»

«Да будет так, — ответил Саладин, и сам обожавший головоломки. — Слушай же. Тебе дадут двенадцать золотых монет и простые весы с двумя чашками, но без гирь. Одна из монет фальшивая, однако неизвестно, легче она или тяжелее настоящих. Ты должен найти ее всего за три взвешивания. Hе справишься с задачей до утра — пеняй на себя!» А вы смогли бы выкрутиться?

20 фунтов чая

Как развесить 20 фунтов чая в 10 коробок по 2 фунта в каждой за девять развесов, имея только гири на 5 и на 9 фунтов, используются обычные чашечные весы?

2) Убрать гири с чаш весов, оставить 4 фунта в одной чаше и уравновесить весы, насыпав во вторую еще 4 фунта.

3) Еще раз отвесить 4 фунта.

4) И еще раз 4 фунта. Таким образом, после четырех взвешиваний в остатке будет тоже 4 фунта.

5-9) Разделить 4 фунта пополам, уравновешивая чаши весов.
Закрыть решение.

101 монета

Среди 101 одинаковых по виду монет, одна фальшивая, отличающаяся по весу. Как с помощью чашечных весов без гирь за два взвешивания определить, легче или тяжелее фальшивая монета? Находить фальшивую монету не требуется.

Берем оставшуюся монету и ставим ее в левую кучку вместо одной из имеющихся там

1.1 Левая кучка тяжелее => фальшивая монета тяжелее

1.2 Левая кучка легче => фальшивая монета легче

Берем более тяжелую кучку и разбиваем ее на две кучки по 25 монет.

2.1 Вес кучек одинаковый => фальшивая монета легче

2.2 Вес кучек неодинаковый => фальшивая монета тяжелее
Закрыть решение.

Задача барона Мюнхгаузена

У барона Мюнхгаузена есть восемь внешне одинаковых гирек весом 1 г, 2 г, 3 г, . 8 г. Он помнит, какая из гирек сколько весит, но граф Склероз ему не верит. Сможет ли барон провести одно взвешивание на чашечных весах, в результате которого будет однозначно установлен вес хотя бы одной из гирь?

2N монет

Имеется 2N пронумерованных монет, причем: все настоящие монеты весят одинаково, все фальшивые также весят одинаково, фальшивая монета легче настоящей. монеты с номерами от 1 до N настоящие, а монеты с номерами от N+1 до 2N — фальшивые. Из этих двух утверждений судья знает только первое, а эксперт — оба. Как эксперту за три взвешивания на чашечных весах без гирь убедить судью в справедливости второго утверждения?

Задача «a» предлагалась на одной из Всесоюзных математических олимпиад в 1970-х годах. С тех пор число N=7 (и в общем случае, N=2^K-1 для K взвешиваний) считалось не улучшаемым. И тем не менее, это не так. Улучшение (задача «b») придумано С. Токаревым в 1997 году.


Судья убеждается, что 8 — фальшивая.

2) Эксперт взвешивает 1+8 и 9+10. (1+8 > 9+10)

Судья убеждается, что 9+10 легче, чем одна фальшивая и одна настоящая. Следовательно, он заключает, что и 9, и 10 — фальшивые.

3) Эксперт взвешивает 1+8+9+10 и 11+12+13+14.

Аналогично, судья может сделать вывод о всех монетах 11-14. Заметим, что настоящая монета нужна ровно одна.

b) Предварительное действие: эксперт группирует монеты в такие три кучки: А (1, 2; 10, 11); Б (3, 4, 5; 12, 13, 14); В (6, 7, 8, 9; 15, 16, 17, 18); В каждой кучке поровну настоящих и фальшивых монет, эксперту это известно, а судье будет доказано в результате взвешиваний.

1) На левую чашку весов кладутся настоящие монеты из кучки А и фальшивые из кучки Б, а на правую — фальшивые из кучки А и настоящие из кучки Б. Правая чашка тяжелее левой.

2) На левую чашку весов кладутся настоящие монеты из кучки Б и фальшивые из кучки В, а на правую — фальшивые из кучки Б и настоящие из кучки В. Правая чашка тяжелее левой.

3) На левую чашку весов кладутся настоящие монеты из кучки В и фальшивые из кучек А и Б, а на правую — фальшивые из кучки В и настоящие из кучек А и Б. Правая чашка тяжелее левой.

Обозначим x разность весов настоящих и фальшивых монет кучки A, т.е. (1+2) -(10+11), y — то же для кучки Б, то есть (3+4+5)-(12+13+14), z — (6+7+8+9)-(15+16+17+18).

Наши взвешивания доказали судье следующие три неравенства:

y > x; z > y; x+y > z.

Поскольку x,y,z – целые числа, то строгие неравенства можно заменить на нестрогие:

Мастер Йода рекомендует:  15 советов по написанию самодокументируемого кода (на примере JavaScript)

Отсюда: x+y >= y+2 => x >= 2;

2z >= x+y+3 >= z+4 => z >= 4.

С другой стороны, очевидно, что разность между K настоящими монетами и K неизвестными монетами не может быть больше, чем K, причем равенство бывает только тогда, когда все неизвестные монеты — фальшивые. Это и доказывает судье все что надо.

Заметим, что и в этом случае 9 настоящих монет не нужно! А сколько их нужно на самом деле? Подумайте.

Еще более интересная задача — для четырех взвешиваний. Алгоритм из задачи а) дает возможность эксперту доказать фальшивость 15 монет. Обобщение алгоритма Токарева позволяет улучшить эту оценку до 27.
Закрыть решение.

Побег из темницы

Король, его сын принц и дочь принцесса находились в темнице высокой башни. Они весили 195, 105 и 90 фунтов соответственно. Еду им поднимали в двух корзинах, прикрепленных к концам длинного каната. Канат был перекинут через балку, вбитую под самой крышей. Получалось так, что, когда одна корзина находилась на земле, вторая находилась на уровне оконца в камере пленников. Эти корзины оставались единственной надеждой на спасение. Естественно, как только одна корзина становилась тяжелее другой, она опускалась. Однако если разница в весе превышает 15 фунтов, корзина стремительно неслась вниз. Единственное что помогло бы пленникам бежать из плена, было находившееся в камере пушечное ядро весом 75 фунтов – его можно было попытаться использовать как противовес. Как пленникам удалось бежать?

2. Принцесса, достигнув земли, не вылезает из корзины. Принц занимает место ядра и спускается вниз, используя принцессу в качестве противовеса.

3. Принцесса поднимается вверх и вместе с королем кладёт в корзину ядро.


4. В опустившуюся корзину с ядром садится принц, что позволяет опустить короля.

5. Когда король оказывается на земле, принц с ядром оказывается наверху. Принц выбирается из корзины и корзина с ядром опускается вниз.

6. В пустую корзину у темницы садится принцесса и спускается на землю.

7. Принц вытаскивает ядро из поднявшейся корзины и спускается сам, используя принцессу как противовес.

8. Принцесса опускает в пустой корзине ядро, а сама садится в поднявшуюся и спускается, используя ядро в качестве противовеса.
Закрыть решение.

1999 монет

Имеется набор из 1999 монет. Известно, что 1410 из них – фальшивые. Фальшивая монета по весу отличается на 1 г от подлинной, причем одни фальшивые монеты могут быть легче, а другие тяжелее подлинных. У нас есть чашечные весы, которые умеют показывать разницу в весе. Как за одно взвешивание определить подлинность любой монеты из набора?

Взвешиваем фрукты с помощью iPhone 6s

Буквально за месяц до презентации iPhone 6s был продемонстрирован новый смартфон Huawei Mate S с экраном, выполненным с применением технологии Force Touch. Как и в случае с 3D Touch, этот дисплей способен распознавать силу нажатия. Вот только сценариев использования китайцы не показали, ограничившись взвешиванием фруктов на смартфоне. Думаете, iPhone 6s так ну умеет?

Раз экран может распознавать силу нажатия, получается, с помощью него можно взвешивать мелкие предметы. Конечно, вес будет приблизительным из-за ограниченного количества распознаваемых степеней нажатия, зато выглядит всё это достаточно оригинально, хоть и, откровенно говоря, пока что абсолютно бесполезно.

Да, вы только что посмотрели, как можно взвешивать обычные сливы на экране iPhone 6s. Для этого понадобится специальное приложение Plum-O-Meter от компании FlexMonkey Towers, которого пока что нет в App Store, но с ним уже могут познакомиться другие разработчики в блоге его девелоперов.

Интересно, даст ли Apple добро на публикацию подобных программ в App Store. Как минимум это грозит тем, что некоторые пользователи начнут взвешивать тяжелые или царапающиеся предметы, которые могут повредить экран iPhone.

Поставьте 5 звезд внизу статьи, если нравится эта тема. Подписывайтесь на нас ВКонтакте , Instagram , Facebook , Twitter , Viber .

10 причин выучить Swift и разрабатывать приложения для iOS

В 2014 году во время конференции для разработчиков Apple представила новый язык программирования Swift. Компания позиционирует его как новый мощный язык для создания приложений для iOS и OS X. В этом году Apple объявила о выходе языка программирования Swift 3.0, где отмечается значительное расширение порта для платформы Linux. Раскрыть все преимущества языка и научить создавать мобильные программы поможет бесплатный курс по Swift от сервиса GeekBrains.

Swift легче поддерживать

В отличие от Objective-C, развитие которого зависит от C, Swift отменяет требование двух файлов. Кроме того, имена методов и комментарии между файлами синхронизируются автоматически, да и вообще программисты делают меньше вспомогательных действий за счет отсутствия шаблонного труда у Swift.

Swift более читаемый

Поскольку данный язык не построен на C, он гораздо проще читается. Например, не нужно ставить запятую в конце строки и писать скобки для окружения выражения внутри if/else. Никаких квадратных скобок, Swift напоминает обычный английский язык, является гораздо более чистым и имеет упрощенный синтаксис.

Swift не требует много кода

Количество кода со Swift становится гораздо меньше. К примеру, для добавления двух строк можно воспользоваться оператором «+». Язык поддерживает интерполяцию строк, не нужно запоминать токены.

Swift быстрее


Apple постоянно продолжает улучшать скорость работы приложений на Swift. Сейчас язык почти на одном уровне с C++ для FFT, и в Купертино обещают, что это не предел.

Swift безопаснее

Swift вызывает ошибку при исполнении кода при использовании переменной nil. Это позволяет облегчить процесс устранения багов, поскольку программист решает проблему сразу.

Swift лучше работает с проектами

С данным языком программисты могут дифференцировать классы или значения при помощи идентификатора пространства имен. Это сильно облегчает включение проектов с открытым исходным кодом.

Swift поддерживает динамические библиотеки

Одно из значимых изменений в Swift — переход от статических библиотек к динамическим. С динамическими библиотеками, которые по сути являются исполняемыми кусками кода, есть возможность присоединить их к приложению. Они в текущей версии Swift, в свою очередь, «связываются» с новыми версиями языка, так как он постоянно развивается.

Swift интерактивен

Swift Playgrounds, представленные не так давно, позволяют программистам проверить новый алгоритм или графическую рутину (например, 15 строек кода), не создавая целое приложение для iPhone.

Swift полностью функциональный

Это не просто «надстройка» к Objective-C, это его полноценная замена.

Swift — это будущее

Очевидно, в ближайшие несколько лет все приложения для iOS (и не только) будут создаваться с помощью Swift. И на это будущее вы можете повлиять. Как же оперативно выучить новый язык и стать первоклассным iOS-программистом?

В этом вам поможет профессия «Программист iOS» в сервисе GeekBrains. Разработчиков Swift сейчас не так много, и специалисты, которые знают данный язык, очень востребованы на рынке. Всего за полгода вы можете освоить новую профессию, пройти гарантированную стажировку и начать работать в крупной IT-компании! Средняя зарплата по Москве и МО для разработчиков iOS говорит сама за себя.

Обучение состоит из двух уровней изучения Objective-C, основ баз данных, двух уровней изучения Swift и командной разработки в компаниях и проектах. 7 из 10 студентов GeekBrains находят работу уже в процессе обучения.

У сервиса есть компании-партнеры, которые рассматривают выпускников в качестве стажеров с возможностью дальнейшего трудоустройства. Проще говоря, начать свою карьеру в IT можно сразу после обучения. Резюме все-таки будет соответствующее.

Для тех, кто давно хотел разрабатывать iOS-приложения, профессия «Программист iOS» — отличный шанс начать двигаться к своей мечте. Дерзайте!

Лучший комментарий

Не, ai, вы «статистические» на «статические», конечно, исправили, молодцы, но лучше убрать весь этот абзац, т.к. и C/C++ и C#, и objectiv-C давным давно работают с динамическими библиотеками. Ренат же, вроде, ПМП закончил, можно ж было у него спросить? Или когда пишуться рекламные статьи о точности информации не думается?

При помощи iPhone 6s можно взвешивать сливы

На своем канале в YouTube Гладман опубликовал видео, в котором продемонстрировал, что при помощи дисплеев iPhone 6s можно измерить вес слив.

3D Touch позволил разработчику сравнить вес слив (относительно максимально возможного усилия в телефоне). Более тяжелая слива подсвечивается желтым цветом.

Приложение Plum-O-meter будет доступно только пользователям устройств с джейлбрейком. Маловероятно, что Apple допустит его в официальный каталог, так как в программе используются закрытые API. Тем не менее, оно наглядно демонстрирует возможности технологии 3D Touch.

Добавить комментарий