Codegolf - Количество Вращений

  • Автор темы Vitel
  • Обновлено
  • 23, Oct 2024
  • #1

Задача

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

Правила

Ввод может быть двумя положительными рациональными числами и может быть принят в любом удобном формате.

Оба входа имеют одну и ту же единицу измерения.

В вашем коде не должно быть цифр 0–9.

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

Это код-гольф поэтому выигрывает самый короткий код

Примеры

 distance radius  output
10       1       2
50       2       4
52.22    4       3
3.4      0.08    7
12.5663  0.9999  3
 

#код-гольф #с ограниченным исходным кодом

Vitel


Рег
15 Feb, 2006

Тем
86

Постов
203

Баллов
663
  • 26, Oct 2024
  • #2

МатематикаГольф, 5 4 байта

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 2 

Попробуйте онлайн!

Объяснение

(count " ") ||answer||

APL+WIN, 9 байт

Запрашивает радиус, а затем расстояние:

b

Попробуйте онлайн! С разрешения Диалог Классик

Объяснение:

a ||answer||

Java 8, 32 30 байт

(fn[a b](int(Math/ceil(/ a Math/PI(count" ")b))))

Содержит непечатные материалы s=>r=>-~(s/2/r/Math.PI) between the single quotes.

Порт @jOKingPerl 6 ответ.

Попробуйте онлайн.

 

Жеже


Рег
16 Dec, 2011

Тем
63

Постов
185

Баллов
530
  • 26, Oct 2024
  • #3

Перл 6, 15 12 байт

-3 байта отправляют nwellnhof, напоминая мне о тау

f(d,r)=ceil(d/π(r+r))

Попробуйте онлайн!

Аноним. Любая лямбда, использующая формулу. (d,r)->-d/(r+r)\-Pi . Tau is two times pi. The two anonymous variables -r принуждаются к числу -d , which is used to floor the number param($d,$r)($a=[math])::ceiling($d/($r+$r)/$a::pi) (побитовое или 0) и добавьте один param() (plus not zero).

 

REDShade


Рег
24 Dec, 2010

Тем
65

Постов
190

Баллов
575
  • 26, Oct 2024
  • #5

05AB1E, 6 байты

proc N d\ r {expr ceil($d/(($r+$r)*acos(-$r/$r)))}

Порт @flawrкомментарий Python 2.
Принимает входные данные в порядке (lambda(a b)(ceiling(/ a(+ b b)pi))) , function(s,r)return math.ceil(s/(r+r)/math.pi)end .

Попробуйте онлайн или проверить все тестовые случаи.

Объяснение:

f d r=ceiling(d/(r+r)/pi) ||answer||

PHP, 47 байт

import'dart:math';f(a,b)=>(a/(b+b)/pi).ceil();

Попробуйте онлайн.

 

C0nf3ss0r


Рег
13 Jan, 2013

Тем
65

Постов
162

Баллов
517
  • 26, Oct 2024
  • #7

С, 46 байт

/MT/V c

Я новичок в PPCG, поэтому не уверен, нужно ли мне считать другие части подсчета байтов, например

÷÷ØPHĊ

необходимо для функции ячейки, которая увеличит счет до 64 байта

 

Werkon


Рег
21 Jun, 2013

Тем
69

Постов
191

Баллов
546
  • 26, Oct 2024
  • #8

католикон, 8 байт

/ tau / ceil int

Объяснение:

function(d,r)ceiling(d/(r+r)/pi)

Новая версия (встроенная функция pi выполнена в один байт, параметры деления поменяны местами), 5 байт

f(d,r)=cld(d/π,r+r) ||answer||

Дж, 10 9 байт

r/r

Попробуйте онлайн!

 

Nick762


Рег
05 Oct, 2006

Тем
85

Постов
195

Баллов
630
  • 26, Oct 2024
  • #9

Стакс, 5 байт

'G' * '\n'

Запустите и отладьте его

f(d,r,R)float d,r;{R=ceil(d/r/'G'/'\n'*'q');} ||answer||

МатематикаГольф, 6 5 байты

∞ # Double the first (implicit) input / # Divide the second (implicit) input by it π/ # Divide it by PI ü # Ceil (and output implicitly)

Полупорт @flawrкомментарий Python 2.
Принимает входные данные в порядке floor+1 .

-1 байт, потому что ceil builtin has just been added, replacing the radius distance .

Попробуйте онлайн.

Объяснение:

∞/π/ü ||answer||

С (ГКК), 45 47 45 байт

Vt* multiply by tau (2pi) / divide e ceiling

Разумное приближение числа Пи составляет 355/113. Поскольку длина окружности C = 2 * r * PI, мы можем вместо pi использовать tau, что тогда, конечно, равно ~710/113. 710 имеет удобные множители 2 * 5 * 71, что компактно выражается как Vt*/e . We add one ( >.@%o.@+: ), чтобы принудительно округлить до бесконечности.

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

Попробуйте онлайн!

 

MubAmonounemy


Рег
28 Oct, 2020

Тем
81

Постов
196

Баллов
611
  • 26, Oct 2024
  • #11

Р, 39 32 байта

-7 байт Спасибо Джузеппе

/ĊǓĊ divide the first input by the doubled second input / `Ė divide that by pi ċ ceil

Попробуйте онлайн!

Я чувствую, что здесь определенно можно сыграть в гольф, но сейчас мне немного лениво что-либо с этим делать.

 

Mihonich


Рег
09 Aug, 2011

Тем
81

Постов
168

Баллов
593
  • 26, Oct 2024
  • #12

мин, 16 байт

ċ//ĊǓĊ`Ė

Берет расстояние и радиус, помещенные в стек в указанном порядке. Затем делит на тау, округляет и дает целое число.

 

Teans


Рег
22 Jan, 2007

Тем
78

Постов
187

Баллов
607
  • 26, Oct 2024
  • #17

Хаскель, 25 байт

· # Double the first (implicit) input / # Divide the second (implicit) input by it žq/ # Divide it by PI î # Ceil it (and output implicitly) ||answer||

Луа, 61 58 57 49 байт

distance

Попробуйте онлайн!

Спасибо Кириллу Л. -8 байт.

 

Olegstro


Рег
22 Dec, 2006

Тем
75

Постов
182

Баллов
567
  • 26, Oct 2024
  • #20

PowerShell, 53 52 51 байт

-1 байт благодаря @mazzy
-1 байт после того, как я понял, что мне не нужна точка с запятой после +!$ block

+|0

Попробуйте онлайн!

Принимает входные данные из двух параметров командной строки: расстояние 0 and radius $ .

 

Licenok


Рег
24 Jan, 2013

Тем
65

Постов
188

Баллов
543
  • 26, Oct 2024
  • #24

Кложур, 50 байт

a->b->-~(int)(a/b/Math.PI/'')

Анонимная функция, принимающая два целых числа ○r+r←⎕ prompt for radius and double it and multiply by pie ⌈⎕÷ prompt for distance, divide by result above and take ceiling and ⌈⎕÷○r+r←⎕ в качестве аргументов: расстояние и радиус колеса соответственно.

Попробуйте онлайн!

τ Push tau (2*pi) / Divide the first argument (total distance) by tau ╠ Reverse divide (computes (distance/tau)/radius) ü Ceiling evaluates to τ/╠ü , поэтому эта функция реализует \$\lceil \dfrac a{2\pi b} \rceil\$.

 

Виталий Лысенко


Рег
07 Jul, 2008

Тем
79

Постов
184

Баллов
589
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно