Просмотр полной версии : Задачка по математике
Есть задача:
https://forum.antichat.xyz/attachments/27875774/
Нельзя использовать: if, else, &&, ||, битовые операции
Инструменты: iostream, cmath, математика, геометрия
Цель: вывести наибольшее из чисел
У меня на решение без гугла ушел 1 час.
Тем кому просто интересно.
Спрячьте ответ под хайд
Скрытое содержимое для пользователя(ей):
*** Скрытый текст не может быть процитирован. ***
только cmath, и никаких указателей
copypaste_scripter
01.11.2021, 16:19
интересно. скажите ответ? и ещё, для чего такое нужно? может где то применится?
LLIKOJIbHUK
01.11.2021, 16:34
Никогда не понимал для чего эти задачи, они же нигде не пригодятся, только в олимпиадах...
таким образом ты тренируешь свой мозг
Никогда не понимал для чего эти задачи, они же нигде не пригодятся, только в олимпиадах...
саморазвитие, понимать что и как может работать в подкорке
@Smeruxa (https://www.blast.hk/members/422424/) сам сделал или нашел? у меня немного другой ответ
kin4stat
01.11.2021, 17:07
саморазвитие, понимать что и как может работать в подкорке
Никогда не понимал для чего эти задачи, они же нигде не пригодятся, только в олимпиадах...
самодеградация
kin4stat
01.11.2021, 17:17
Никаких if, циклов и битовых операций. Чистая математика процессора
C++:
[CODE]
#include
#include
int
main
(
)
{
int
a
,
b
;
std
::
cin
>>
a
>>
b
;
__asm
{
mov eax
,
a
cmp eax
,
b
cmovl eax
,
b
mov a
,
eax
}
std
::
cout
F0RQU1N and
01.11.2021, 17:33
Нельзя использовать: if, else, &&, ||, битовые операции
case
case
и сколько ты так будешь перебирать через switch?)
допустим первое значение 3, а второе 10003
удачи расписать 10003 кейса)
???:
[CODE]
#include
void
main
(
)
{
int
in
[
2
]
=
{
4
,
20
}
;
std
::
cout
[QUOTE="Cake_"]
???:
[CODE]
#include
void
main
(
)
{
int
in
[
2
]
=
{
4
,
20
}
;
std
::
cout
LLIKOJIbHUK
01.11.2021, 18:29
моё решение: поскольку в начале задачи написано, что она необязательная, её можно не решать) не благодарите меня за гениальное решение
это как физра в школе: если она последним уроком, значит последнего урока нет
.deserve
01.11.2021, 19:27
competitive programming tour 2021 from hackerrank & facebook:
[CODE]
#include
int
main
(
)
{
int
a
{
}
,
b
{
}
;
std
::
cin
>>
a
>>
b
;
std
::
cout
>
a
;
std
::
cout
@Smeruxa (https://www.blast.hk/members/422424/) сам сделал или нашел? у меня немного другой ответ
Учитель информатики делал и натыкал на такое решение, почучуть почучуть получилось так
и сколько ты так будешь перебирать через switch?)
допустим первое значение 3, а второе 10003
удачи расписать 10003 кейса)
циклы?
Учитель информатики делал и натыкал на такое решение, почучуть почучуть получилось так
циклы?
циклы низя
Есть решение проще, @kin4stat (https://www.blast.hk/members/161331/) сделал
kin4stat
01.11.2021, 20:26
Есть решение проще, @kin4stat (https://www.blast.hk/members/161331/) сделал
у @SC6UT (https://www.blast.hk/members/406860/) аналогичное
.deserve
01.11.2021, 20:39
ой **** дурак, там же интринсики незя было юзать:
#include
#if __has_include()
#include
#endif
enum
slot
{
SLOT_F
}
;
[
[
nodiscard
]
]
__int32
fucking_safe_get_num
(
__m128i fuck_in
,
slot slot
)
{
alignas
(
16
)
__int32 alc
[
4
]
;
_mm_store_si128
(
reinterpret_cast
(
alc
)
,
fuck_in
)
;
return
(
slot
==
SLOT_F
)
?
alc
[
3
]
:
alc
[
0
]
;
}
int
main
(
)
{
int
a
{
}
,
b
{
}
;
std
::
cin
>>
a
>>
b
;
__m128i fucking_SSE2_a
{
_mm_set_epi32
(
a
,
NULL
,
NULL
,
NULL
)
}
,
fucking_SSE2_b
{
_mm_set_epi32
(
b
,
NULL
,
NULL
,
NULL
)
}
,
fucking_max
{
_mm_max_epi32
(
fucking_SSE2_a
,
fucking_SSE2_b
)
}
;
__int32 result
=
fucking_safe_get_num
(
fucking_max
,
SLOT_F
)
;
printf
(
"Fucking result: %i\n"
,
fucking_max
)
;
std
::
system
(
"pause"
)
;
return
0
;
}
Подсыпать другу в кофе слабительного, посидев на троне около часа он 100% придумает ответ. Для лучшей эффективности забрать у него телефон и аэрозольный балончик.
Хайзенберг
02.11.2021, 01:04
Мой мозг понимает только слова Хитка
Можно отправить запрос в гугл и взять от него инфу, профит
zTechnology
04.11.2021, 18:50
Есть задача:
Нельзя использовать: if, else, &&, ||, битовые операции
Инструменты: iostream, cmath, математика, геометрия
Цель: вывести наибольшее из чисел
У меня на решение без гугла ушел 1 час.
Тем кому просто интересно.
Спрячьте ответ под хайд
C++:
#include
using
namespace
std
;
int
main
(
)
{
int
q
,
w
;
cin
>>
q
>>
b
;
int
output
=
q
>
b
?
q
:
b
;
cout
ой **** дурак, там же интринсики незя было юзать:
[CODE]
#include
#if __has_include()
#include
#endif
enum
slot
{
SLOT_F
}
;
[
[
nodiscard
]
]
__int32
fucking_safe_get_num
(
__m128i fuck_in
,
slot slot
)
{
alignas
(
16
)
__int32 alc
[
4
]
;
_mm_store_si128
(
reinterpret_cast
(
alc
)
,
fuck_in
)
;
return
(
slot
==
SLOT_F
)
?
alc
[
3
]
:
alc
[
0
]
;
}
int
main
(
)
{
int
a
{
}
,
b
{
}
;
std
::
cin
>>
a
>>
b
;
__m128i fucking_SSE2_a
{
_mm_set_epi32
(
a
,
NULL
,
NULL
,
NULL
)
}
,
fucking_SSE2_b
{
_mm_set_epi32
(
b
,
NULL
,
NULL
,
NULL
)
}
,
fucking_max
{
_mm_max_epi32
(
fucking_SSE2_a
,
fucking_SSE2_b
)
}
;
__int32 result
=
fucking_safe_get_num
(
fucking_max
,
SLOT_F
)
;
printf
(
"Fucking result: %i\n"
,
fucking_max
)
;
std
::
system
(
"pause"
)
;
return
0
;
}
shitcode и куча бесполезных функций...
kin4stat
04.11.2021, 19:38
[QUOTE="zTechnology"]
C++:
[CODE]
#include
using
namespace
std
;
int
main
(
)
{
int
q
,
w
;
cin
>>
q
>>
b
;
int
output
=
q
>
b
?
q
:
b
;
cout
Решение: https://replit.com/@idonhomka/Task8611#main.cpp (https://www.blast.hk/redirect/aHR0cHM6Ly9yZXBsaXQuY29tL0BpZG9uaG9ta2EvVGFzazg2MT EjbWFpbi5jcHA)
Получаем модуль разницы чисел, складываем a + b + c и получается число ровно в два раза больше максимального числа (т.к. меньшее число доходит до большего при помощи разницы). Ну и делим на два.
Решили: @kin4stat (https://www.blast.hk/members/161331/) @SC6UT (https://www.blast.hk/members/406860/)
Моё решение было не таких простым, моё решение: (a * (a + c) + b * (b + c)) / (a * b), но оно получает деление на 0 если одно из чисел равно нулю.
zTechnology
04.11.2021, 20:32
Тернарный условный оператор - тоже условный оператор
Нельзя использовать: if, else, &&, ||
Было написано это, так что тут уже не моя проблема, что условия были расписаны не полностью
kin4stat
04.11.2021, 20:57
Нельзя использовать: if, else, &&, ||
Было написано это, так что тут уже не моя проблема, что условия были расписаны не полностью
На скрине условия прочитай
Michael_Komas
14.11.2021, 21:04
не знаю, вроде как работает эта штука:
Код:
[CODE]
#include
#include
using namespace std;
int main(int argc, const char* argv[]) {
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int num, num1;
cout > num;
cout > num1;
num > num1 ? cout
[QUOTE="Michael_Komas"]
не знаю, вроде как работает эта штука:
Код:
[CODE]
#include
#include
using namespace std;
int main(int argc, const char* argv[]) {
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int num, num1;
cout > num;
cout > num1;
num > num1 ? cout
Нельзя использовать: if, else, &&, ||, битовые операции
Инструменты: iostream, cmath, математика, геометрия
Цель: вывести наибольшее из чисел
Ну конечно хочется
C++:
a
>
b
?
a
:
b
Или хотя бы
C++:
int
x
;
if
(
a
>
b
)
x
=
a
;
else
x
=
b
;
Скрытое содержимое для пользователя(ей): AnWu (https://www.blast.hk/members/161656/)
Еще проскользнул такой вариант...
C++:
[CODE]
int
n
[
2
]
=
{
a
,
b
}
;
// если b > a, то 1, если b
Во-первых, массивы, а во-вторых не работает при a = b. Уверен, что второе "но" устранимо, но нет смысла думать, т.к. массивы...
[QUOTE="Vintik"]
Ну конечно хочется
C++:
a
>
b
?
a
:
b
Или хотя бы
C++:
int
x
;
if
(
a
>
b
)
x
=
a
;
else
x
=
b
;
*** Скрытый текст не может быть процитирован. ***
Еще проскользнул такой вариант...
C++:
[CODE]
int
n
[
2
]
=
{
a
,
b
}
;
// если b > a, то 1, если b
Решение валяется дет в теме, я уже не помню)
Нашёл.
Моё же)
Но мне понравилось твоё.
Помнится, была как-то задачка менять bool (0 -> 1, 1 -> 0).
Я как накрутил, что-то типа:
C++:
bool
b
;
-
1
*
(
-
1
+
b
)
Потом долго сокращал, а в конце понял, что это решается в общем случае (a -> b, b -> a):
https://forum.antichat.xyz/attachments/28466016/
Уравнение прямой
y = kx + p
.
b = k * a + p
a = k * b + p
=> вычитаем 1 из 2
a - b = k * (b - a)
k = -1
=> подставляем k = -1
b = -a + p
p = a + b
И так, например, функция перевода 5 -> 8, 8 -> 5 будет иметь вид:
z = 5 + 8 - z
kin4stat
08.03.2024, 02:01
Помнится, была как-то задачка менять bool (0 -> 1, 1 -> 0).
x^=1
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot