Вычисление максимального количества точек принадлежащих одной линии из массива точек C#

Дано:
Массив точек на плоскости: points[][]   Xi и Yi.
Надо найти:
Сколько максимально точек принадлежит одной прямой.

Пример:

Исходный массив: points= [[1,1],[3,2],[5,3],[4,1],[2,3],[1,4]]
Результат: 4
Подробнее

Вращение (прокручивание) массива K раз, Rotate Array K times C#

Пример прокручивания/вращения массива Array K  раз на  C#

public static void Rotate(int[] nums, int k) {
        int len = nums.Length;
        int cnt = k%len;
        if ((len<2)||(cnt==0)){return;}
        int x = 0;
        int val = nums[x];
        int val_prev = nums[x];
    
            int x_start = x;
            for (int i = 0; i<len;i++)
            {
                x = x+cnt<len?x+cnt:(x+cnt)%len;
                val_prev = nums[x];
                nums[x] = val;
                
                if (x_start == x)
                {
                    x++;
                    val = nums[x];
                    x_start = x;
                }
                else
                {
                    val = val_prev;
                }
            }
    }

Смысл на примере:
Есть массив: [1,2,3,4,5]
Проворачиваем его 3 раза: K=3.
Результат:
[3,4,5,1,2]

Подробнее

Руководство по Python Bottle (Перевод) Часть 6 - Templates (о Шаблонах)

В предыдущей части (Руководство по Python Bottle (Перевод) Часть 5 — Request Data (данные в запросе)) мы рассмотрели основные аспекты относящиеся к передаваемым данным в запросах, в этой части мы вкратце рассмотрим использование шаблонов.

Bottle имеет быстрый и мощный встроенный механизм шаблонов, который называется SimpleTemplate Engine. Для рендеринга шаблона вы можете использовать функцию template() или декоратор view(). Все, что вам нужно сделать, это предоставить имя шаблона и переменные, которые вы хотите передать шаблону в качестве аргументов. Вот простой пример того, как обратиться к шаблону:

@route('/hello')
@route('/hello/<name>')
def hello(name='World'):
    return template('hello_template', name=name)



Данный код загрузит файл шаблона hello_template.tpl и отобразит его с установленной переменной name. Bottle будет искать шаблоны в папке ./views/ или в любой папке, указанной в списке bottle.TEMPLATE_PATH.

Подробнее

Руководство по Python Bottle (Перевод) Часть 5 - Request Data (данные в запросе)

В предыдущей части (Руководство по Python Bottle (Перевод) Часть 4 — Создание контента) мы рассмотрели основные аспекты относящиеся к передаваемому контенту, в этой части мы рассмотрим данные передаваемые в запросах.

Файлы Cookie, HTTP-заголовки, поля HTML форм и другие данные запроса доступны через глобальный объект request. Этот специальный объект всегда ссылается на текущий запрос, даже в многопоточных средах, где одновременно обрабатываются сразу несколько клиентских подключений:

from bottle import request, route, template

@route('/hello')
def hello():
    name = request.cookies.username or 'Guest'
    return template('Привет {{name}}', name=name)


Объект request является подклассом от BaseRequest и имеет очень богатый API для доступа к данным. Здесь будут рассмотрены только наиболее часто используемые функции, этого должно быть достаточно для начала.

Подробнее

Руководство по Python Bottle (Перевод) Часть 4 - Создание контента

В предыдущей части (Руководство по Python Bottle (Перевод) Часть 3 — Маршрутизация запросов) мы рассмотрели основные аспекты касающиеся маршрутизации запросов, в этой части будут рассмотрены аспекты относящиеся к передаваемому контенту.

Создание контента


В чистом стандарте WSGI диапазон возвращаемых из приложения типов очень ограничен. Приложения должны возвращать строки с возможностью разбиения их на набор байт. Можно вернуть строку (разбив её на части), но большинство серверов это заставляет передавать контент символ за символом. Строки в Unicode не допускаются вообще. Это не очень практично.

Bottle гораздо более гибок и поддерживает широкий спектр типов. Он автоматически добавляет заголовок Content-Length, когда это возможно, и автоматически кодирует Unicode, что облегчает работу разработчика. Ниже приведен список типов данных, которые могут быть возвращены из приложения, и краткое описание того, как они обрабатываются платформой:

Подробнее

Руководство по Python Bottle (Перевод) Часть 3 - Маршрутизация запросов

В предыдущей части (Руководство по Python Bottle (Перевод) Часть 2 — Hello World) мы создали простое Web приложение, с одним единственным маршрутом, вот та часть кода с маршрутизацией из примера «Hello World»:

@route('/hello')
def hello():
    return "Hello World!"


В этом примере декоратор route() связывает URL путь с вызываемой функцией, и добавляет новый маршрут.

Теперь давайте добавим ещё один маршрут:

@route('/')
@route('/hello/<name>')
def greet(name='Незнакомец'):
    return template('Здравствуй {{name}}, как дела?', name=name)


(Не забываем ипортировать необходимые библиотеки: from bottle import template)

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

Подробнее

Пример десериализации XML в dynamic (Deserialize XML C#)

Пример:

using System;
using Newtonsoft.Json;
using System.Xml.Linq;

namespace ConsoleAppTest
{
    class Program
    {
        static void Main(string[] args)
        {
            string xml = @"<response><user>Roman</user><status>Active</status></response>";
            XDocument doc = XDocument.Parse(xml);
            string  jsn = JsonConvert.SerializeXNode(doc);
            dynamic response = JsonConvert.DeserializeObject(jsn);
            Console.WriteLine(response.response.status);
            Console.WriteLine(response.response.user);
            Console.ReadKey();
        }
    }
}
Подробнее

POST запрос application/x-www-form-urlencoded на сервер при помощи WebRequest С#

Пример метода производящего запрос data на сервер и получение ответа res по указанному адресу url:

public static string ServerRequest(string data, string url)
        {
            string res = "";
            try
            {
                // Чтобы не проверял SSL а просто шёл и брал что дают по HTTPS
                System.Net.ServicePointManager.ServerCertificateValidationCallback +=
                    delegate (object sender, System.Security.Cryptography.X509Certificates.X509Certificate certificate,
                                System.Security.Cryptography.X509Certificates.X509Chain chain,
                                System.Net.Security.SslPolicyErrors sslPolicyErrors)
                    {
                        return true; // **** Всегда принимаем
                    };

                var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
                httpWebRequest.ContentType = "application/x-www-form-urlencoded";
                httpWebRequest.Method = "POST";
                using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
                {
                    streamWriter.Write(data);
                    streamWriter.Flush();
                    streamWriter.Close();
                }

                var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();

                using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
                {
                    var result = streamReader.ReadToEnd();
                    res = result;
                }
            }
            catch (WebException ex)
            {

                using (var streamReader = new StreamReader(ex.Response.GetResponseStream()))
                {
                    var result = streamReader.ReadToEnd();
                    res = result;
                }
                Program.Logger.Error(ex, ex.Message);
            }
            Program.Logger.Info(res);
            return res;
        }
Подробнее

Ссылочные локальные переменные в C# 7

Начиная с версии C# 7 в языке появилась возможность, позволяющая объявить локальную переменную, ссылающуюся на элемент массива или на поле в объекте:

int[] simpleArray = {0, 1, 2, 3, 4, 5, 6, 7, 8};
ref int simpleElementRef = ref simpleArray[3];


В примере выше simpleElementRef — ссылка на simpleArray[3]. Изменение simpleElementRef приводит к изменению элемента массива:

simpleElementRef *= 15;
Console.WriteLine(simpleElementRef);      // 15
Console.WriteLine(simpleArray[3]);        // 15


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

Подробнее