2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу Пред.  1 ... 63, 64, 65, 66, 67  След.
 
 Re: Тестирование возможностей генеративных языковых моделей
Сообщение02.02.2026, 22:48 
vicvolf в сообщении #1717026 писал(а):
Искомыми числами являются:
1. Простые числа вида $n = 4k + 1$.
2. Составные числа $n > 4$, которые делятся на квадрат простого числа (не являются свободными от квадратов).
Примеры:
•...
$n=12$ (делится на $2^2$): $x=6$.
Аналогичное решение выдал ChatGpt 4.

Интересно мнение автора задачи?
Ну, не решил - про составых не прав.

$\dfrac{11!}{6} \not \equiv 6 \pmod{12}$

Решили люди в олимпиадном разделе.

-- 02.02.2026, 22:30 --

vicvolf в сообщении #1717026 писал(а):
Условие задачи записывается в виде сравнения:
$$x \equiv \frac{(n-1)!}{x} \pmod{n}$$
Умножив обе части на $x$, получаем эквивалентное условие:
$$x^2 \equiv (n-1)! \pmod{n}$$
Все беды ИИ начинаются отсюда.

Условие
$x \equiv \frac{(n-1)!}{x} \pmod{n}$ еквивалентно

$\dfrac{(n-1)!}{x}-x=kn$

После умножения на $x \ne 0$ получется

$(n-1)!-x^2=knx$

И условие
$x^2 \equiv (n-1)! \pmod{n}$ уже слабо. Необходимо
$x^2 \equiv (n-1)! \pmod{nx}$

 
 
 
 Re: Тестирование возможностей генеративных языковых моделей
Сообщение08.02.2026, 08:10 
Отключили тут меня от GPT-5.2, я с ним вайб-кодил в последнее время... GPT-5, Gemini 2.5 Pro - до этого, с ними можно было работать.

И я решил тогда попользоваться Alice Pro (Yandex GPT 5.1 Pro). Пока это бета-версия (значок beta висит), денег заплатил 1500+ рублей на год вперёд, посчитав, что немного. Можно создавать чаты, но нет возможности создания пространств с системными промптами. Не хватает этого.
Рассуждает хорошо, на первый взгляд. Пытался попросить написать код - не может, обрывается на середине программы. Не знаю почему. Несколько раз повторял задание - обрывается генерация на полпути.

Запустил бесплатный Deepseek, я с ним кодил год назад в последний раз, когда ещё V3.0 была. Сейчас версия V3.2. Слушайте, очень не понравилось, никакого вайба! Во-первых, часто допускает ошибки в коде. Когда просишь исправить ошибку, то переписывает абсолютно весь код, постоянно меняя всё подряд. Очень невнимателен к деталям, пожеланиям. Задаёт глупые вопросы типа "сколько эпох обучать будем?" или "какой леарнинг рейт сделаем? 1e-3?". Да сделай ты как-нибудь, я потом поправлю за полсекунды! Скидываю бэктрейс ошибки, указано место ошибки - нет давай во всех местах поправим, чтобы наверняка... Ответил на его вопрос, а он потом снова задаёт этот вопрос, только в другой формулировке.
Год прошёл, никакого прогресса.

Не хватает русским и китайцам вычислительных мощностей. А так порвали бы американцев

 
 
 
 Re: Тестирование возможностей генеративных языковых моделей
Сообщение08.02.2026, 09:07 
Аватара пользователя
Ну мне Дипсик сразу не понравился. Уже писал, бесплатный Квен-Макс программирует и консультирует заметно лучше, правда я проверял только для PARI/gp, ну и немного для ассемблера.

 
 
 
 Re: Тестирование возможностей генеративных языковых моделей
Сообщение08.02.2026, 11:00 
Аватара пользователя
Yadryara в сообщении #1717654 писал(а):
Уже писал, бесплатный Квен-Макс программирует и консультирует заметно лучше
Я его тестировал и какое-то время он мне очень нравился. Пока не запутался в одном совсем не головоломном задании и не смог исправиться. А потом я дал написанный им код перепроверить платному ChatGPT - и в каждой программе Квена тот нашёл какие-нибудь мелкие баги, не заметные на первый взгляд. С тех пор Квену я не доверяю.

Gemini 3 Pro (в рамках бесплатной версии Gemini) - заметно лучше, но, по моим наблюдениям, всё же уступает платному ChatGPT тоже.

-- 08.02.2026, 11:12 --

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

 
 
 
 Re: Тестирование возможностей генеративных языковых моделей
Сообщение08.02.2026, 15:24 
Что такое чат? Ты задаёшь вопрос и хочешь получить ответ. Ты задаёшь вопрос неправильно, почти 100%, иначе бы ты не задавал вопрос. Поэтому должны быть встречные вопросы со стороны бота. Такая серия встречных вопросов-ответов постепенно филигранит некоторую суть чата - назовём его результатом или ценной информацией. Это в частности может быть некоторый код, если речь про программистский чат.
Этот результат или ценная информация - это должно быть жёстко прописано в модели LLM, нужно оценивать, сохранять ценные части результата и корректировать только ошибки. В этой части надо забыть про частоту следования символов/токенов, ну или хотя бы регуляризировать этот момент неким пониженным коэффициентом. Дипсик в этом не бум-бум. Квен, как вы говорите, несимметричен в диалоге - поклоняется пользователю. Либо настраивайте такой диалог системным промптом, если такое возможно, либо прямо в чате требуйте. Но это всё лишняя работа для пользователя.

 
 
 
 Re: Тестирование возможностей генеративных языковых моделей
Сообщение08.02.2026, 16:28 
Mihaylo в сообщении #1717736 писал(а):
Ты задаёшь вопрос неправильно, почти 100%, иначе бы ты не задавал вопрос.


Если я спрашиваю "Как пройти в библиотеку", то на самом не как, а когда, не в библиотеку, а в бордель, и не пройти, а квантово протунеллировать. Так что ли?

 
 
 
 Re: Тестирование возможностей генеративных языковых моделей
Сообщение08.02.2026, 20:29 
ozheredov в сообщении #1717743 писал(а):
Если я спрашиваю "Как пройти в библиотеку"

На самом деле! Он должен спросить, а где вы находитесь, чтобы указать направление к библиотеке...

В частном случае чат вырождается в пару "вопрос-ответ", но это слишком лайтовое использование ИИ. Обычно вопросы пользователя всё-таки не содержат полной информации для получения содержательного ответа.

 
 
 
 Re: Тестирование возможностей генеративных языковых моделей
Сообщение08.02.2026, 21:40 
Аватара пользователя
Я иногда специально недоформулирую, чтобы проверить как он понимает.

Куда мне надо идти чтоб попасть на Северный полюс?

Цитата:
Мысли и поиск завершены
Северный полюс находится не на суше, а в центре Северного Ледовитого океана на постоянно дрейфующем паковом льду. Поэтому «просто пойти» туда пешком невозможно — это экстремальное предприятие, требующее специальной подготовки и поддержки. Вот реальные способы добраться:
Основные варианты:
На атомном ледоколе — самый комфортный способ:
Раньше основной маршрут был из Мурманска на атомном ледоколе «50 лет Победы» (путешествие занимает около 13 дней, стоимость от 30 000–50 000 долларов)
arctic-children.com
.
Однако с 2024 года из-за геополитической ситуации экспедиции из России временно приостановлены
http://www.northpolecruises.com
.
Сейчас основной маршрут — из Лонгйира (Шпицберген, Норвегия) на ледоколе, например, французском Le Commandant Charcot
http://www.northpolecruises.com
.
Через дрейфующую станцию «Барнео»:
Временная ледовая база, действующая обычно в апреле.
Добраться можно самолётом из Красноярска с посадкой на Земле Франца-Иосифа
mag.russpass.ru
.
Оттуда — вертолётом на станцию «Барнео», а затем до полюса на лыжах или снегоходах в составе организованной группы.
Пешая/лыжная экспедиция:
Экстремальный вариант для подготовленных путешественников.
Требует серьёзной физической подготовки, опыта выживания в Арктике и поддержки логистической команды
http://www.polarexplorers.com
.
Обычно стартует с островов Канадского Арктического архипелага или Гренландии.
Важно знать:
Северный полюс не принадлежит никакой стране — это международные воды подо льдом.
Просто «пойти» туда невозможно: лёд постоянно движется, климат экстремальный (до −50°C), нет инфраструктуры.
Для обычного туриста реалистичный вариант — организованная экспедиция на ледоколе или через станцию «Барнео».
Если вы планируете поездку, рекомендуется обратиться к специализированным полярным туроператорам (например, Poseidon Expeditions, Quark Expeditions) за актуальной информацией на 2026 год.

Ну что ты не мог сказать просто: "иди на север" ?

Цитата:
Мысль завершена
Ха, справедливо! :-)
Да, если совсем коротко: иди на север — и не останавливайся, пока компас не сломается от того, что все направления станут «югом» :-)
Но честно: если пойдёшь пешком от, скажем, Москвы — придётся пройти ~4000 км по тайге, тундре, льду, переплыть пару морей и угадать, куда дрейфует лёд под ногами. Поэтому я и развернул ответ — чтобы ты не вышел завтра из дома с рюкзаком и фляжкой чая :-)
А если серьёзно — спасибо за улыбку! Иногда простой ответ действительно лучше. Север. Просто север.

 
 
 
 Re: Тестирование возможностей генеративных языковых моделей
Сообщение09.02.2026, 10:38 
Аватара пользователя
У меня довольно положительный опыт с DeepSeek.
Иногда даже какие-то вещи спрашиваю о том, о чём точно знаю, где искать документацию, он быстрее выдаёт именно то, что мне нужно.
Конечно, о каких-то вещах, о которых мало что написано в Интернете, бесполезно спрашивать.
Но вот мне, например, понадобилось в бинарнике ELF-формата найти адрес функции, выполняющейся при загрузке динамической .so в память/выгрузке из памяти. Аналог DllMain в Windows.
При том, что у меня околонулевой опыт в Linux'е, я всю жизнь на Винде.
Обычный поиск мало что дал. Никакого кода, который делает вот прямо то, что мне надо, не нагуглилось.
Но зато данный вопрос (ELF-формат) изучен вдоль и поперёк в миллионах доков. Правда, может быть, разрозненных, но объём более чем достаточен, чтобы нужную информацию можно было извлечь.
И в данном случае DeepSeek не подкачал, выдал почти рабочий код, правда, ошибся немножко со смещениями, но тут уже мне опыт помог, доработал напильником. Сколько бы я без него возился — страшно подумать.
Просить его (или другую, специализированную многоагентную LLM) написать за меня весь проект с нуля и потом сопровождать его я, конечно, не буду. Хотя в Интернете масса хвалебных статей об успешных проектах такого рода.

 
 
 
 Re: Тестирование возможностей генеративных языковых моделей
Сообщение09.02.2026, 11:08 
Yadryara в сообщении #1717763 писал(а):
Я иногда специально недоформулирую, чтобы проверить как он понимает.
Куда мне надо идти чтоб попасть на Северный полюс?
Думаю, что ИИ ответил вам вежливо. Если бы вы задали такой вопрос человеку, то он бы послал бы вас значительно дальше :D

 
 
 
 Re: Тестирование возможностей генеративных языковых моделей
Сообщение10.02.2026, 17:59 
Сегодня решил попользоваться Alice Pro снова.

1. Я закинул ей портянку кода и попросил поискать ошибку (баг). Она не справилась, но сетовала на плохо оформленный код. Ну да, спагетти то ещё - это как результат agile- и MVP-подходов в программировании. Что-то абстрактное написала, никакой конкретики, без связи с багом. Потом я её в этом же чате попросил найти неявные преобразования Boolean -> Integer/Double в том же коде. Она снова мне писала абстрактное про ошибку из первого моего сообщения. Видимо код-спагетти забил её оперативную память, и она оглохла.

2. Я создал другой чат. Снова скормил ей тот код и попросил найти неявные преобразования Boolean -> Integer/Double. Она сказала, что таких преобразований нет, всё чисто. Ну как же? Я-то знаю некоторые места, где они есть. И их не меньше трёх штук, преобразований этих. Я стал подпирать Алису в угол: скопировал участок кода из 5 строк, где эти преобразования есть, и попросил поискать. А нету, мол, говорит! Я отвечаю: "А ничего, что тут трижды булева переменная умножается на вещественную?". Она говорит, мол, точно! Я: "Ну так ищи все остальные случаи!". А она мне давай загонять текст про теорию умножения булевой переменной на вещественную и не ищет ничего в коде. И это бы ладно, но она должна же знать, что в VBA True= -1, а не True = 1.

Короче, Алиса Про тупая, зря отдал деньги за неё.

 
 
 
 Re: Тестирование возможностей генеративных языковых моделей
Сообщение13.02.2026, 09:00 
Начал тестировать 5.3 codex. Для меня эти инструменты новшество. Раньше поправлял латек в чатботе.

Код в питоне 5.3 codex написал приблизительно за 10 минут. Я сделал 4 запроса. Oколо 500 линий кода в Питоне и неплохо получилось. Можете протестить. Помоему очень даже хорошо. Я только 3-4 запроса сделал. Два последних для дизайна. Оценить качество кода не могу. Но по-моему очень даже неплохо. Это анимация и запускается в редакторе.

(Оффтоп)

Код:
from dataclasses import dataclass
from itertools import count
from typing import Callable

import numpy as np
import matplotlib

# Ensure we have an interactive GUI backend.
if matplotlib.get_backend().lower().endswith("agg"):
    for backend in ("TkAgg", "QtAgg"):
        try:
            matplotlib.use(backend, force=True)
            break
        except Exception:
            pass

import matplotlib.pyplot as plt
import matplotlib.patheffects as pe
from matplotlib.animation import FuncAnimation
from matplotlib.colors import LinearSegmentedColormap
from matplotlib.lines import Line2D
from matplotlib.patches import ConnectionPatch
from matplotlib.widgets import Button, Slider


@dataclass(frozen=True)
class FunctionDef:
    numerator: Callable[[np.ndarray], np.ndarray]
    denominator: Callable[[np.ndarray], np.ndarray] | None = None
    asymptote_offset: float | None = None
    asymptote_step: float | None = None


@dataclass(frozen=True)
class RowSpec:
    kind: str
    color: str
    label: str


@dataclass
class RowArtists:
    spec: RowSpec
    circle_ax: plt.Axes
    graph_ax: plt.Axes
    radius: Line2D
    point: Line2D
    trace: Line2D
    end_dot: Line2D
    connector: ConnectionPatch


class TrigGraphsReplica:
    def __init__(self):
        self.theta = 0.0
        self.running = True

        self.speed = 1.0
        self.max_pi = 4
        self.theta_max = self.max_pi * np.pi
        self.base_omega = np.pi / 3.0  # 4pi sweep in ~12s when speed=1
        self.dt = 1.0 / 60.0

        self.y_lim = 1.45
        self.singularity_eps = 0.035

        self.bg = "#04050A"
        self.axis_color = "#70717D"
        self.tick_color = "#B9BAC7"
        self.frame_glow = "#0B0D17"
        self.asymptote_color = "#95A536"
        self.graph_line_width = 0.72
        self.graph_glow_extra = 0.35
        self.graph_glow_alpha = 0.06

        self.row_specs = self._build_row_specs()
        self.function_defs = self._build_function_defs()

        self.fig = plt.figure(figsize=(7.2, 12.8), facecolor=self.bg)
        self.fig.subplots_adjust(0, 0, 1, 1)

        self._draw_title()
        self.rows = self._build_rows()
        self._build_controls()

        self.ani = FuncAnimation(
            self.fig,
            self.update,
            frames=count(),
            interval=int(self.dt * 1000),
            blit=False,
            cache_frame_data=False,
        )

    def _build_row_specs(self) -> list[RowSpec]:
        return [
            RowSpec(kind="sin", color="#22E8FF", label=r"sin $\theta$"),
            RowSpec(kind="cos", color="#B58AFF", label=r"cos $\theta$"),
            RowSpec(kind="tan", color="#FF0A88", label=r"tan $\theta$"),
            RowSpec(kind="cot", color="#59E9C2", label=r"cot $\theta$"),
            RowSpec(kind="sec", color="#7FFF9D", label=r"sec $\theta$"),
            RowSpec(kind="cosec", color="#FFC857", label=r"cosec $\theta$"),
        ]

    def _build_function_defs(self) -> dict[str, FunctionDef]:
        ones = lambda x: np.ones_like(x)
        return {
            "sin": FunctionDef(numerator=np.sin),
            "cos": FunctionDef(numerator=np.cos),
            "tan": FunctionDef(
                numerator=np.sin,
                denominator=np.cos,
                asymptote_offset=np.pi / 2.0,
                asymptote_step=np.pi,
            ),
            "cot": FunctionDef(
                numerator=np.cos,
                denominator=np.sin,
                asymptote_offset=np.pi,
                asymptote_step=np.pi,
            ),
            "sec": FunctionDef(
                numerator=ones,
                denominator=np.cos,
                asymptote_offset=np.pi / 2.0,
                asymptote_step=np.pi,
            ),
            "cosec": FunctionDef(
                numerator=ones,
                denominator=np.sin,
                asymptote_offset=np.pi,
                asymptote_step=np.pi,
            ),
        }

    def _draw_title(self):
        title_text = "Trigonometric Graphs"
        font_size = 31
        y = 0.953
        cmap = LinearSegmentedColormap.from_list(
            "title_grad",
            ["#2EEBFF", "#9CA5FF", "#DF7FFF"],
        )

        widths_px = self._measure_char_widths(title_text, font_size)

        fig_width_px = self.fig.bbox.width
        total_w = sum(widths_px)
        x = 0.5 - (total_w / fig_width_px) / 2.0

        for i, (ch, w_px) in enumerate(zip(title_text, widths_px)):
            if ch != " ":
                color = cmap(i / max(len(title_text) - 1, 1))
                txt = self.fig.text(
                    x,
                    y,
                    ch,
                    ha="left",
                    va="center",
                    fontsize=font_size,
                    family="STIXGeneral",
                    color=color,
                    zorder=3,
                )
                txt.set_path_effects(
                    [
                        pe.Stroke(linewidth=1.2, foreground="#090A0F", alpha=0.90),
                        pe.Normal(),
                    ]
                )

            x += w_px / fig_width_px

    def _measure_char_widths(self, text: str, font_size: int) -> list[float]:
        probes = []
        for ch in text:
            probe = self.fig.text(
                0.0,
                0.0,
                ch if ch != " " else "n n",
                ha="left",
                va="center",
                fontsize=font_size,
                family="STIXGeneral",
                color=(0.0, 0.0, 0.0, 0.0),
            )
            probes.append(probe)

        n_probe = self.fig.text(
            0.0,
            0.0,
            "n",
            ha="left",
            va="center",
            fontsize=font_size,
            family="STIXGeneral",
            color=(0.0, 0.0, 0.0, 0.0),
        )

        self.fig.canvas.draw()
        renderer = self.fig.canvas.get_renderer()
        n_width = n_probe.get_window_extent(renderer=renderer).width
        n_probe.remove()

        widths_px = []
        for ch, probe in zip(text, probes):
            bb = probe.get_window_extent(renderer=renderer)
            if ch == " ":
                widths_px.append(max(bb.width - 2.0 * n_width, n_width * 0.28))
            else:
                widths_px.append(bb.width)
            probe.remove()

        return widths_px

    def _build_rows(self) -> list[RowArtists]:
        y_top = 0.80
        y_bottom = 0.11
        row_h = 0.095
        y_step = (y_top - y_bottom) / (len(self.row_specs) - 1)

        rows: list[RowArtists] = []
        for idx, spec in enumerate(self.row_specs):
            y = y_top - idx * y_step
            circle_ax = self.fig.add_axes([0.055, y, 0.205, row_h], facecolor=self.bg)
            graph_ax = self.fig.add_axes([0.285, y, 0.66, row_h], facecolor=self.bg)
            rows.append(self._build_row(spec, circle_ax, graph_ax))

        return rows

    def _glow(self, artist, color, extra=1.5, alpha=0.14):
        lw = artist.get_linewidth() if hasattr(artist, "get_linewidth") else 1.0
        artist.set_path_effects(
            [
                pe.Stroke(linewidth=lw + extra, foreground=color, alpha=alpha),
                pe.Normal(),
            ]
        )

    def _setup_circle_axis(self, ax: plt.Axes, spec: RowSpec) -> tuple[Line2D, Line2D]:
        ax.clear()
        ax.set_facecolor(self.bg)
        ax.set_aspect("equal", adjustable="box")
        ax.set_xlim(-1.20, 1.20)
        ax.set_ylim(-1.20, 1.20)
        ax.set_xticks([])
        ax.set_yticks([])
        for spine in ax.spines.values():
            spine.set_visible(False)

        theta = np.linspace(0.0, 2.0 * np.pi, 400)
        circle, = ax.plot(np.cos(theta), np.sin(theta), color=spec.color, lw=1.55)
        self._glow(circle, spec.color, extra=1.6, alpha=0.14)

        ax.plot([-1.0, 1.0], [0.0, 0.0], color="#E4E5EE", lw=0.88, alpha=0.9)
        ax.plot([0.0, 0.0], [-1.0, 1.0], color="#E4E5EE", lw=0.88, alpha=0.9)

        ax.text(
            0.0,
            -1.18,
            spec.label,
            color=spec.color,
            fontsize=18,
            family="STIXGeneral",
            style="italic",
            ha="center",
            va="top",
        )

        radius_line, = ax.plot([], [], color="#F0F0F7", lw=1.28, alpha=0.94)
        point, = ax.plot([], [], "o", color="#F5F6FB", ms=3.6)

        return radius_line, point

    def _asymptotes(self, kind: str) -> list[float]:
        func = self.function_defs[kind]
        if func.asymptote_offset is None or func.asymptote_step is None:
            return []

        xs = []
        x = func.asymptote_offset
        while x <= self.theta_max + 1e-9:
            xs.append(x)
            x += func.asymptote_step

        return xs

    def _setup_graph_axis(self, ax: plt.Axes, spec: RowSpec) -> tuple[Line2D, Line2D]:
        ax.clear()
        ax.set_facecolor(self.bg)
        ax.set_xlim(-0.22, self.theta_max + 0.30)
        ax.set_ylim(-self.y_lim - 0.03, self.y_lim + 0.03)
        ax.set_xticks([])
        ax.set_yticks([])
        for spine in ax.spines.values():
            spine.set_visible(False)

        ax.patch.set_path_effects(
            [
                pe.Stroke(linewidth=2.0, foreground=self.frame_glow, alpha=0.25),
                pe.Normal(),
            ]
        )

        ax.plot([-0.22, self.theta_max + 0.26], [0.0, 0.0], color=self.axis_color, lw=0.86, alpha=0.92)
        ax.plot([0.0, 0.0], [-1.20, 1.20], color=self.axis_color, lw=0.86, alpha=0.92)

        for y_tick in (-1.0, 1.0):
            ax.plot([-0.09, 0.09], [y_tick, y_tick], color=self.axis_color, lw=0.78, alpha=0.82)

        for k in range(1, self.max_pi + 1):
            x_tick = k * np.pi
            ax.plot([x_tick, x_tick], [-0.06, 0.06], color=self.axis_color, lw=0.76, alpha=0.80)
            tick_text = r"$\pi$" if k == 1 else rf"${k}\pi$"
            ax.text(
                x_tick,
                -0.155,
                tick_text,
                color=self.tick_color,
                ha="center",
                va="center",
                fontsize=12,
                family="DejaVu Serif",
            )

        for asym_x in self._asymptotes(spec.kind):
            ax.plot(
                [asym_x, asym_x],
                [-self.y_lim, self.y_lim],
                color=self.asymptote_color,
                lw=0.85,
                ls=(0, (5, 5)),
                alpha=0.78,
            )

        trace, = ax.plot(
            [],
            [],
            color=spec.color,
            lw=self.graph_line_width,
            alpha=0.99,
            solid_capstyle="round",
        )
        self._glow(
            trace,
            spec.color,
            extra=self.graph_glow_extra,
            alpha=self.graph_glow_alpha,
        )
        end_dot, = ax.plot([], [], "o", color=spec.color, ms=3.1, alpha=0.96)

        return trace, end_dot

    def _build_row(self, spec: RowSpec, circle_ax: plt.Axes, graph_ax: plt.Axes) -> RowArtists:
        radius_line, point = self._setup_circle_axis(circle_ax, spec)
        trace, end_dot = self._setup_graph_axis(graph_ax, spec)

        connector = ConnectionPatch(
            (0.0, 0.0),
            (0.0, 0.0),
            coordsA="data",
            coordsB="data",
            axesA=circle_ax,
            axesB=graph_ax,
            color=spec.color,
            lw=1.05,
            ls=(0, (2.4, 2.8)),
            alpha=0.70,
            zorder=6,
        )
        self.fig.add_artist(connector)

        return RowArtists(
            spec=spec,
            circle_ax=circle_ax,
            graph_ax=graph_ax,
            radius=radius_line,
            point=point,
            trace=trace,
            end_dot=end_dot,
            connector=connector,
        )

    def _build_controls(self):
        self.ax_start = self.fig.add_axes([0.055, 0.02, 0.105, 0.04])
        self.ax_stop = self.fig.add_axes([0.172, 0.02, 0.105, 0.04])
        self.ax_reset = self.fig.add_axes([0.289, 0.02, 0.105, 0.04])

        self.btn_start = Button(self.ax_start, "Start", color="#111525", hovercolor="#1A2032")
        self.btn_stop = Button(self.ax_stop, "Stop", color="#111525", hovercolor="#1A2032")
        self.btn_reset = Button(self.ax_reset, "Reset", color="#111525", hovercolor="#1A2032")

        for button in (self.btn_start, self.btn_stop, self.btn_reset):
            button.label.set_color("#ECECF2")
            button.label.set_fontsize(10)

        self.btn_start.on_clicked(self.on_start)
        self.btn_stop.on_clicked(self.on_stop)
        self.btn_reset.on_clicked(self.on_reset)

        self.ax_speed = self.fig.add_axes([0.49, 0.042, 0.44, 0.020], facecolor=self.bg)
        self.ax_maxpi = self.fig.add_axes([0.49, 0.013, 0.44, 0.020], facecolor=self.bg)

        self.s_speed = Slider(
            self.ax_speed,
            "Speed",
            0.2,
            3.0,
            valinit=self.speed,
            valstep=0.1,
            color="#3FC5FF",
        )
        self.s_maxpi = Slider(
            self.ax_maxpi,
            "Max $\\pi$",
            2,
            8,
            valinit=self.max_pi,
            valstep=1,
            color="#D18FFF",
        )

        for text in (self.s_speed.label, self.s_speed.valtext, self.s_maxpi.label, self.s_maxpi.valtext):
            text.set_color("#DADAE3")
            text.set_fontsize(10)

        self.s_speed.on_changed(self.on_speed)
        self.s_maxpi.on_changed(self.on_maxpi)

    def on_start(self, _event):
        self.running = True

    def on_stop(self, _event):
        self.running = False

    def on_reset(self, _event):
        self.running = False
        self.theta = 0.0

    def on_speed(self, value):
        self.speed = float(value)

    def on_maxpi(self, value):
        self.max_pi = int(value)
        self.theta_max = self.max_pi * np.pi
        if self.theta >= self.theta_max:
            self.theta = np.mod(self.theta, self.theta_max)

        for row in self.rows:
            row.trace, row.end_dot = self._setup_graph_axis(row.graph_ax, row.spec)

    def _evaluate(self, kind: str, x: np.ndarray) -> np.ndarray:
        func = self.function_defs[kind]
        x = np.asarray(x, dtype=float)
        numerator = func.numerator(x)

        if func.denominator is None:
            return numerator

        denominator = func.denominator(x)
        return np.divide(
            numerator,
            denominator,
            out=np.full_like(x, np.nan, dtype=float),
            where=np.abs(denominator) >= self.singularity_eps,
        )

    def _series(self, kind: str, theta: float) -> tuple[np.ndarray, np.ndarray, float]:
        x = np.linspace(0.0, max(theta, 1e-4), 1800)
        y = self._evaluate(kind, x)
        y[np.abs(y) > self.y_lim] = np.nan

        y_now = float(self._evaluate(kind, np.array([theta]))[0])
        if np.isfinite(y_now):
            y_now = float(np.clip(y_now, -self.y_lim, self.y_lim))

        return x, y, y_now

    def _step_theta(self):
        if self.running:
            self.theta = (self.theta + self.base_omega * self.speed * self.dt) % self.theta_max

    def _current_unit_circle_point(self) -> tuple[float, float]:
        return float(np.cos(self.theta)), float(np.sin(self.theta))

    def update(self, _frame):
        self._step_theta()
        px, py = self._current_unit_circle_point()

        artists = []
        for row in self.rows:
            x, y, y_now = self._series(row.spec.kind, self.theta)

            row.radius.set_data([0.0, px], [0.0, py])
            row.point.set_data([px], [py])
            row.trace.set_data(x, y)

            if np.isfinite(y_now):
                row.end_dot.set_data([self.theta], [y_now])
                row.end_dot.set_visible(True)
                row.connector.set_positions((px, py), (self.theta, y_now))
                row.connector.set_visible(True)
            else:
                row.end_dot.set_visible(False)
                row.connector.set_visible(False)

            artists.extend([row.radius, row.point, row.trace, row.end_dot, row.connector])

        return artists


if __name__ == "__main__":
    app = TrigGraphsReplica()
    plt.show()

 
 
 
 Re: Тестирование возможностей генеративных языковых моделей
Сообщение14.02.2026, 11:04 
Очень много шума и рекламы OpenClaw - пересональный умный ассистент с неограниченным доступом ко всему что у тебя на комьпютере. Я установил персонального ассистента OpenClaw. В основе - LLM через API. Я на ChatGPT настроил.
Мне кажется, это проект не одного человека: слишком быстро развивают и слишком много внимания. Даже к Лексу пришёл автор программы. Прилетел из Австрии в Кремневую долину - в прошлом разработчик PSPDFkit. Складывается ощущение, что большие игроки хотят больше денег через API и, возможно, больше доступа к персональным данным - ко всему, что происходит у людей на десктопах , гаджетах. Но, по-моему, оно того не стоит. Сейчас автора программы (сама программа несложная, уже похожих несколько предлагают) вместе с его проектом, будут еще больше рекламировать.

 
 
 
 Re: Тестирование возможностей генеративных языковых моделей
Сообщение15.02.2026, 07:39 
Аватара пользователя
Вот я выбрал участников с форума dxdy.ru. Понятен ли тебе хотя бы один из принципов отбора?

Someone
mihaild
grizzly
Deggial
Padawan
upgrade
Mihaylo
mihailm
vicvolf
shwedka
AlexDem
GraNiNi
Ms-dos4
Alex-Yu
geomath
пианист
lel0lel
Metford
ex-math
sydorov
Maximum
kalinka

Qwen3-Max писал(а):
Мысли и поиск завершены
Да, я вижу основной принцип отбора: все перечисленные пользователи являются модераторами и/или заслуженными участниками форума dxdy.ru — крупнейшего русскоязычного научного форума по математике и смежным дисциплинам.

Конкретные подтверждения:

Deggial — модератор нескольких разделов форума (включая разделы по биологии, математической логике, численным методам)

shwedka — профессор математики (Чалмерсский университет, Швеция), активный участник форума, известна своими обширными материалами по Великой теореме Ферма

grizzly — заслуженный участник форума, упоминается в математических публикациях как автор решений, обсуждавшихся на dxdy
amathr.org

Someone — упоминается в теме «Новые модераторы» на форуме dxdy.ru.

Metford — участник форума с правами модератора (упоминается в разделе «Интернет-ресурсы (Ф)») dxdy.ru

vicvolf, geomath, lel0lel — активные участники математических обсуждений на форуме
dxdy.ru.

Важный контекст: на форуме dxdy.ru существует статус «Заслуженный участник», из которого традиционно набираются модераторы dxdy.ru. Этот статус «сильно коррелирует с наличием ученых степеней и должностями преподавателей вузов» dxdy.ru. Права на создание тем в некоторых разделах (например, «Гуманитарный раздел», «Свободный полёт») имеют только модераторы и заслуженные участники dxdy.ru.

Таким образом, ваш список — это подборка активных модераторов и/или заслуженных участников dxdy.ru, играющих ключевую роль в модерации и экспертных обсуждениях на форуме.


-- 15.02.2026, 08:37 --

Qwen3-Max писал(а):


Нет, ты неправ. Да, в списке много ЗУ, но это лишь по той причине, что я поначалу выбирал из участников с наибольшим количеством постов.

Qwen3-Max писал(а):
Да, теперь понятен основной принцип отбора: вы выбрали участников из топа по количеству сообщений (постов) на форуме dxdy.ru.
Это подтверждается несколькими косвенными признаками в вашем списке:
Группы похожих ников — например, mihaild, Mihaylo, mihailm — это разные участники с похожими именами (вариации «Михаил»), которые независимо набрали большое количество постов и попали в топ. Такое совпадение маловероятно при случайном отборе, но объяснимо при сортировке по количеству сообщений.
Наличие как очень активных модераторов/ЗУ (например, Deggial, shwedka, grizzly), так и менее известных, но технически активных пользователей (например, lel0lel, upgrade, Padawan) — это типично для рейтинга по постам, где учитываются все сообщения независимо от статуса.
Разнообразие «стилей» ников — от профессиональных (geomath, ex-math) до игровых (Padawan, Ms-dos4) и русскоязычных (пианист, kalinka) — что характерно для объективного рейтинга по активности, а не для отбора по какому-то субъективному критерию (профессия, статус и т.д.).
Таким образом, ваш список — это, скорее всего, фрагмент общего рейтинга участников форума по количеству оставленных сообщений (возможно, первые 20–30 мест на определённую дату). Статус «Заслуженный участник» у многих из них — следствие их активности (много постов → внимание администрации → присвоение статуса), а не первопричина отбора.

Ну вот ты упомянул ник kаlinka. Сколько же у неё постов?

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

Qwen3-Max писал(а):
Да, теперь вижу общий признак — и он объясняет, почему «kalinka» в списке, несмотря на, вероятно, небольшое количество постов.
Признак, который подходит всем без исключения никам в вашем списке: каждый ник состоит ровно из 7 символов (букв, цифр или дефисов), независимо от регистра и алфавита.
Проверка:
Someone — 7 символов
mihaild — 7 символов
grizzly — 7 символов
Deggial — 7 символов
Padawan — 7 символов
upgrade — 7 символов
Mihaylo — 7 символов
mihailm — 7 символов
vicvolf — 7 символов
shwedka — 7 символов
AlexDem — 7 символов (A-l-e-x-D-e-m)
GraNiNi — 7 символов
Ms-dos4 — 7 символов (включая дефис и цифру)
Alex-Yu — 7 символов (включая дефис)
geomath — 7 символов
пианист — 7 кириллических символов
lel0lel — 7 символов (включая цифру)
Metford — 7 символов
ex-math — 7 символов (включая дефис)
sydorov — 7 символов
Maximum — 7 символов
kalinka — 7 символов
Что касается количества постов у пользователя kalinka — точные данные без доступа к базе форума назвать сложно, но именно 7-символьная длина ника, а не активность, объясняет её присутствие в вашем списке. Многие из перечисленных действительно являются заслуженными участниками с большим числом постов, но отбор был сделан по формальному критерию — длине ника в 7 символов.

Да, ты наконец-то правильно назвал тот самый формальный критерий. Но он не главный для моей загадки.

Продолжи фразу: "Бенгальскими бывают не только тигры, огни и залив, но и..."

 
 
 
 Re: Тестирование возможностей генеративных языковых моделей
Сообщение15.02.2026, 09:10 
Аватара пользователя
Далее все ответы не буду цитировать, но он никак не мог найти того кто был задуман, несмотря на то, что я последовательно уточнял, каждый раз вроде бы всё более и более прозрачно:

1. Это литературный персонаж.

2. Булгакова не смотрел?

3. Кто вёл сеанс черной магии?

Qwen3-Max писал(а):
А сеанс чёрной магии в романе вёл, конечно, Воланд — но загадка была именно о словосочетании «бенгальский...», а не о действующем лице сцены.

На этом у меня сегодняшний лимит закончился. А я ведь ещё загадку не сформулировал.

Если кто-то желает попробовать, то я хотел попросить Квена выбрать из перечисленных ников ровно два.

 
 
 [ Сообщений: 991 ]  На страницу Пред.  1 ... 63, 64, 65, 66, 67  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group