Как найти минимальное значение радиуса

Каково наименьшее значение радиуса?

Nikita TT
[60]

6 лет назад 

В углах квадратного участка 20 м * 20 м стоят распылители воды. Орошаемая каждым распылителем часть поверхности земли имеет форму круга, центром которого является основание распылителя. Радиусы орошаемых кругов равны, так как регулируются одним краном. Каково наименьшее значение этого радиуса из приведенных в ответах, если участок полит весь?

А. 13 м. Б. 14 м. В. 15 м. Г. 16 м.

Им достаточно иметь длину радиуса в половину диагонали этого куба.

Тогда если каждый из 4-х распылителей достанет до центра, то вся площадь комнаты будет покрыта.

По закону Архимеда находим длину диагонали:

(гипотенуза)²=(катет)²+(катет)²=2(катет)²

(гипотенуза)²=2*20²=800

гипотенуза=√800=28,2843

Половина от неё это 14,142 м.

Получается если мы возьмём радиус орошения в 14 м, то в центре останется чуть-чуть не полито.

Поэтому берём 15м.

комментировать

в избранное

ссылка

отблагодарить

Копче­ный
[130]

6 лет назад 

Ближе всего ответ 14м. Хотя и он неверный. Правильный ответ 14м, 14см и 2мм, далее округим. Можно так же Корень из 800 /2.

в избранное

ссылка

отблагодарить

Nikita TT
[60]

а почему и он неверный?может тогда 15 м ответ? 
—  6 лет назад 

Копченый
[130]

Потому что корень из 800 зеленый на 2 -это не целое число. Но ближайшее целое это 14. 
—  6 лет назад 

Nikita TT
[60]

А если в условии говорится найти наименьшее значение, «если участок покрыт весь»? 
—  6 лет назад 

Копченый
[130]

Тогда округлять в бОльшую сторону, и писать 15 метров. 
—  6 лет назад 

Знаете ответ?

Given a positive integer K, a circle center at (0, 0) and coordinates of some points. The task is to find minimum radius of the circle so that at-least k points lie inside the circle. Output the square of the minimum radius. 

Examples:  

Input : (1, 1), (-1, -1), (1, -1), 
         k = 3
Output : 2
We need a circle of radius at least 2
to include 3 points.


Input : (1, 1), (0, 1), (1, -1), 
         k = 2
Output : 1
We need a circle of radius at least 1
to include 2 points. The circle around
(0, 0) of radius 1 would include (1, 1)
and (0, 1).

The idea is to find square of Euclidean Distance of each point from origin (0, 0). Now, sort these distance in increasing order. Now the kth element of distance is the required minimum radius.
Below is the implementation of this approach: 

C++

#include<bits/stdc++.h>

using namespace std;

int minRadius(int k, int x[], int y[], int n)

{

   int dis[n];

   for (int i = 0; i < n; i++)

       dis[i] = x[i] * x[i] + y[i] * y[i];

    sort(dis, dis + n);

    return dis[k - 1];

}

int main()

{

  int k = 3;

  int x[] = { 1, -1, 1 };

  int y[] = { 1, -1, -1 };

  int n = sizeof(x)/sizeof(x[0]);

  cout << minRadius(k, x, y, n) << endl;

  return 0;

}

Java

import java.util.Arrays;

class GFG

{

    static int minRadius(int k, int[] x, int[] y,

                                          int n)

    {

        int[] dis=new int[n];

        for (int i = 0; i < n; i++)

            dis[i] = x[i] * x[i] + y[i] * y[i];

        Arrays.sort(dis);

        return dis[k - 1];

    }

    public static void main (String[] args) {

    int k = 3;

    int[] x = { 1, -1, 1 };

    int[] y = { 1, -1, -1 };

    int n = x.length;

    System.out.println(minRadius(k, x, y, n));

    }

}

Python3

def minRadius(k, x, y, n):

    dis = [0] * n

    for i in range(0, n):

        dis[i] = x[i] * x[i] + y[i] * y[i]

    dis.sort()

    return dis[k - 1]

k = 3

x = [1, -1, 1]

y = [1, -1, -1]

n = len(x)

print(minRadius(k, x, y, n))

C#

using System;

class GFG {

    static int minRadius(int k, int []x,

                          int[] y, int n)

    {

        int[] dis = new int[n];

        for (int i = 0; i < n; i++)

            dis[i] = x[i] * x[i] +

                       y[i] * y[i];

        Array.Sort(dis);

        return dis[k - 1];

    }

    public static void Main ()

    {

        int k = 3;

        int[] x = { 1, -1, 1 };

        int[] y = { 1, -1, -1 };

        int n = x.Length;

        Console.WriteLine(

              minRadius(k, x, y, n));

    }

}

PHP

<?php

function minRadius($k, $x, $y, $n)

{

    $dis =array();

    for ($i = 0; $i < $n; $i++)

        $dis[$i] = $x[$i] * $x[$i] +

                   $y[$i] * $y[$i];

        sort($dis);

        return $dis[$k - 1];

}

$k = 3;

$x = array(1, -1, 1);

$y = array(1, -1, -1);

$n = count($x);

echo minRadius($k, $x, $y, $n) ;

?>

Javascript

<script>

    function minRadius(k, x, y, n) {

        let dis = Array.from({length: n}, (_, i) => 0);

        for (let i = 0; i < n; i++)

            dis[i] = x[i] * x[i] + y[i] * y[i];

        dis.sort();

        return dis[k - 1];

    }

    let k = 3;

    let x = [ 1, -1, 1 ];

    let y = [ 1, -1, -1 ];

    let n = x.length;

    document.write(minRadius(k, x, y, n));

</script>   

Time complexity: O(n + nlogn)
Auxiliary Space: O(n)ve.

Approach#2: Using binary search

This code uses binary search to find the minimum radius such that at least k points lie inside or on the circumference of the circle. It first finds the maximum distance between any two points, then performs binary search on the range [0, max_distance] to find the minimum radius.

Algorithm

1. Initialize left = 0 and right = maximum distance between any two points in the given set of points.
2. While left <= right, find mid = (left + right) / 2
3. Check if there exist k points inside or on the circumference of a circle with radius mid using a simple linear search. 4. If k or more points are inside or on the circumference of the circle, set right = mid – 1.
5. If less than k points are inside or on the circumference of the circle, set left = mid + 1.
6. After the binary search, the value of left will be the minimum radius required to include k points.

C++

#include <cmath>

#include <iostream>

#include <vector>

using namespace std;

double dist(pair<int, int> p1, pair<int, int> p2)

{

    return sqrt(pow(p1.first - p2.first, 2)

                + pow(p1.second - p2.second, 2));

}

int count_points_in_circle(vector<pair<int, int> > points,

                           pair<int, int> center,

                           double radius)

{

    int count = 0;

    for (auto point : points) {

        if (dist(point, center) <= radius) {

            count++;

        }

    }

    return count;

}

int MinimumRadius(vector<pair<int, int> > points, int k)

{

    double left = 0.0;

    double right = 0.0;

    for (int i = 0; i < points.size(); i++) {

        for (int j = i + 1; j < points.size(); j++) {

            double d = dist(points[i], points[j]);

            if (d > right) {

                right = d;

            }

        }

    }

    while (left <= right) {

        double mid = (left + right) / 2.0;

        bool found = false;

        for (int i = 0; i < points.size(); i++) {

            if (count_points_in_circle(points, points[i],

                                       mid)

                >= k) {

                found = true;

                break;

            }

        }

        if (found) {

            right = mid - 1.0;

        }

        else {

            left = mid + 1.0;

        }

    }

    return static_cast<int>(left);

}

int main()

{

    vector<pair<int, int> > points{ { 1, 1 },

                                    { -1, -1 },

                                    { 1, -1 } };

    int k = 3;

    cout << MinimumRadius(points, k) << endl;

}

Python3

import math

def dist(p1, p2):

    return math.sqrt((p1[0] - p2[0])**2 + (p1[1] - p2[1])**2)

def count_points_in_circle(points, center, radius):

    count = 0

    for point in points:

        if dist(point, center) <= radius:

            count += 1

    return count

def minimum_radius(points, k):

    left, right = 0, 0

    for i in range(len(points)):

        for j in range(i+1, len(points)):

            d = dist(points[i], points[j])

            if d > right:

                right = d

    while left <= right:

        mid = (left + right) / 2

        found = False

        for i in range(len(points)):

            if count_points_in_circle(points, points[i], mid) >= k:

                found = True

                break

        if found:

            right = mid - 1

        else:

            left = mid + 1

    return int(left)

points = [(1, 1), (-1, -1), (1, -1)]

k = 3

print(minimum_radius(points, k))

Javascript

function dist(p1, p2) {

    return Math.sqrt(Math.pow(p1[0] - p2[0], 2) + Math.pow(p1[1] - p2[1], 2));

}

function count_points_in_circle(points, center, radius) {

    let count = 0;

    for (let point of points) {

        if (dist(point, center) <= radius) {

            count++;

        }

    }

    return count;

}

function MinimumRadius(points, k) {

    let left = 0.0;

    let right = 0.0;

    for (let i = 0; i < points.length; i++) {

        for (let j = i + 1; j < points.length; j++) {

            let d = dist(points[i], points[j]);

            if (d > right) {

                right = d;

            }

        }

    }

    while (left <= right) {

        let mid = (left + right) / 2.0;

        let found = false;

        for (let i = 0; i < points.length; i++) {

            if (count_points_in_circle(points, points[i], mid) >= k) {

                found = true;

                break;

            }

        }

        if (found) {

            right = mid - 1.0;

        } else {

            left = mid + 1.0;

        }

    }

    return Math.floor(left);

}

const points = [

    [1, 1],

    [-1, -1],

    [1, -1]

];

const k = 3;

console.log(MinimumRadius(points, k));

Time Complexity: O(n^2 * log(r)) where n is the number of points and r is the maximum distance between any two points.
Space complexity: O(1) as it uses only a constant amount of extra space irrespective of the size of the input.

This article is contributed by Anuj Chauhan. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed abo

Last Updated :
24 Apr, 2023

Like Article

Save Article

Условие задачи:

Маленький металлический шарик массой 1 г и зарядом 100 нКл брошен издалека со скоростью 1 м/с в металлическую сферу с зарядом 300 нКл. При каком минимальном значении радиуса сферы шарик достигнет её поверхности?

Задача №6.3.52 из «Сборника задач для подготовки к вступительным экзаменам по физике УГНТУ»

Дано:

(m=1) г, (q=100) нКл, (upsilon=1) м/с, (Q=300) нКл, (R-?)

Решение задачи:

Схема к решению задачиСделаем важное замечание: при решении задачи мы будем считать, что сфера закреплена (то есть неподвижна)!

В момент бросания шарик находит далеко от сферы, поэтому вся энергия системы “шарик-сфера” состоит из кинетической энергии шарика (W_к), равной:

[{W_к} = frac{{m{upsilon ^2}}}{2}]

Когда шарик достигнет сферы, то энергия системы будет складываться из потенциальной энергии взаимодействия зарядов шарика и сферы (W_п) и некоторой кинетической энергии шарика. Но если нам нужно найти минимальное значение радиуса сферы, то эта кинетическая энергия будет равна нулю. Потенциальную энергию (W_п) найдём по формуле:

[{W_п} = frac{{kQq}}{R}]

Коэффициент пропорциональности (k) равен 9·109 Н·м2/Кл2. Согласно закону сохранения энергии ({W_к} = {W_п}), поэтому:

[frac{{m{upsilon ^2}}}{2} = frac{{kQq}}{R}]

Откуда искомый минимальный радиус сферы (R) равен:

[R = frac{{2kQq}}{{m{upsilon ^2}}}]

Произведём расчёты:

[R = frac{{2 cdot 9 cdot {{10}^9} cdot 300 cdot {{10}^{ – 9}} cdot 100 cdot {{10}^{ – 9}}}}{{0,001 cdot {1^2}}} = 0,54;м]

Ответ: 0,54 м.

Если Вы не поняли решение и у Вас есть какой-то вопрос или Вы нашли ошибку, то смело оставляйте ниже комментарий.

Смотрите также задачи:

6.3.51 Электрон, ускоренный разностью потенциалов 5 кВ, влетает в середину зазора между
6.3.53 В электронно-лучевой трубке поток электронов с кинетической энергией 8 кэВ
6.3.54 В закрепленной металлической сфере радиусом 1 см, имеющей заряд -10 нКл

Минимальное значение — радиус

Cтраница 1

Минимальное значение радиуса кри — етель.
 [1]

Вычисленное по этой формуле минимальное значение радиуса сопрягающей кривой рекомендуется применять на главных и при-емо-отправочных путях.
 [2]

Больше чем 0 8 pmjn минимального значения радиуса piniri кривизны эквидистанты радиус ролика не следует брать, потому что при малом радиусе кривизны профиля могут появиться большие местные напряжения.
 [3]

Больше чем 0 8 pmin минимального значения радиуса ртш кривизны эквидистанты радиус ролика не следует брать, потому что при малом радиусе кривизны профиля могут появиться большие местные напряжения.
 [4]

По зависимости г / А рСд определяют необходимое минимальное значение радиуса инерции сечения.
 [5]

Для роликовых цепей с шарнирами в двух плоскостях минимальные значения радиусов перегиба направляющих в вертикальной плоскости принимаются равными 2 — 2 5 расстояния между каретками.
 [6]

В скобках приведены значения, вычисленные с использованием минимального значения ван-дер-ваальсовского радиуса.
 [7]

Поэтому в расчетах парожидкостного равновесия с учетом капиллярных сил принятое автором минимальное значение радиуса пор равно 0 1 мкм.
 [8]

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

Подобрав форму сечения по таблицам ГОСТа на прокатный сортамент, выбрать подходящий размер так, чтобы действительный радиус инерции сечения был не меньше найденного минимального значения радиуса инерции.
 [10]

Для трубопроводов всех категорий ( кроме категории la), рассчитанных на давление не более 40 ати, если по их конструкции и условиям монтажа минимальное значение радиуса гиба трубы недостаточно, разрешается составлять колена, отводы и другие детали из отдельных секторов и сваривать их. В качестве материала для колен, отводов и других деталей могут быть применены как бесшовные, так и сварные трубы или листовая сталь соответствующего качества.
 [11]

При выборе расчетных радиусов кривизны сопряженных поверхностей, которыз весьма существенна влияют на величину контактных напряжений, следует выбирать такое положение сопряженных тел, которое соответствует минимальным значениям радиусов кривизны.
 [12]

Измерения диаметра наружной поверхности рабочего колеса и отклонения ее от сферической формы производят с помощью шаблона / ( рис. 8.6, а), рабочая кромка которого выполнена по радиусу, соответствующему минимальному значению радиуса поверхности сферической формы.
 [14]

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

Страницы:  

   1

   2

   3

Хорды MN и PK пересекаются в точке A так, что MA = 3 см, NA = 16 см, PA : KA = 1 : 3. Найдите PK и наименьшее значение радиуса этой окружности.

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

16 · 3 = PA · KA
48 = PA · KA

PA относится к KA как 1 : 3, то есть длина отрезка PA представляет собою такое число, которое в произведении с длиной KA будет равно 48 см, а при деление на длину KA будет равно 1 : 3.

То есть данную зависимость можно выразить системой уравнений:
____________
|PA · KA = 48
|PA : KA = 1 : 3

____________
|PA = 48 : KA
|PA : KA = 1 : 3

____________
|PA = 48 : KA
|(48 : KA) : KA = 1 : 3 =>

48 · 3 = 1 · KA · KA

144 = KA^2

KA = 12

Теперь найдем PA:

PA · KA = 48

PA = 48 : KA

PA = 48 : 12

PA = 4 см.

Итак, длина PA равна 4 см, длина KA — 12 см. :thnk:

Однако найти наименьшее значение радиуса мне не удалось. Есть предположение, что оно равно половине хорды.

Тему поднял, а то затерялась уже на второй странице.:hash2:

Понравилась статья? Поделить с друзьями:
  • Как найти музыку по записи звука
  • Как составить акт на временно проживающих в квартире
  • Как найти свой способ бросить курить
  • Лоу гу точка как найти
  • Как найти фильм который смотрел в кинотеатре