@jjlmoya/utils-finance 1.4.0 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -1
- package/src/category/i18n/de.ts +158 -0
- package/src/category/i18n/id.ts +158 -0
- package/src/category/i18n/it.ts +158 -0
- package/src/category/i18n/ja.ts +158 -0
- package/src/category/i18n/ko.ts +158 -0
- package/src/category/i18n/nl.ts +158 -0
- package/src/category/i18n/pl.ts +158 -0
- package/src/category/i18n/pt.ts +158 -0
- package/src/category/i18n/ru.ts +158 -0
- package/src/category/i18n/sv.ts +158 -0
- package/src/category/i18n/tr.ts +158 -0
- package/src/category/i18n/zh.ts +158 -0
- package/src/category/index.ts +13 -1
- package/src/tests/category_validation.test.ts +73 -0
- package/src/tests/faq_count.test.ts +1 -1
- package/src/tests/i18n_coverage.test.ts +36 -0
- package/src/tests/locale_completeness.test.ts +3 -0
- package/src/tests/slug_language_code_format.test.ts +23 -0
- package/src/tests/slug_uniqueness.test.ts +81 -0
- package/src/tests/title_quality.test.ts +1 -1
- package/src/tool/compoundInterest/i18n/de.ts +208 -0
- package/src/tool/compoundInterest/i18n/id.ts +208 -0
- package/src/tool/compoundInterest/i18n/it.ts +208 -0
- package/src/tool/compoundInterest/i18n/ja.ts +207 -0
- package/src/tool/compoundInterest/i18n/ko.ts +207 -0
- package/src/tool/compoundInterest/i18n/nl.ts +208 -0
- package/src/tool/compoundInterest/i18n/pl.ts +208 -0
- package/src/tool/compoundInterest/i18n/pt.ts +208 -0
- package/src/tool/compoundInterest/i18n/ru.ts +208 -0
- package/src/tool/compoundInterest/i18n/sv.ts +208 -0
- package/src/tool/compoundInterest/i18n/tr.ts +208 -0
- package/src/tool/compoundInterest/i18n/zh.ts +202 -0
- package/src/tool/compoundInterest/index.ts +15 -7
- package/src/tool/courtFeeCalculator/i18n/de.ts +152 -0
- package/src/tool/courtFeeCalculator/i18n/fr.ts +1 -1
- package/src/tool/courtFeeCalculator/i18n/id.ts +152 -0
- package/src/tool/courtFeeCalculator/i18n/it.ts +152 -0
- package/src/tool/courtFeeCalculator/i18n/ja.ts +152 -0
- package/src/tool/courtFeeCalculator/i18n/ko.ts +152 -0
- package/src/tool/courtFeeCalculator/i18n/nl.ts +152 -0
- package/src/tool/courtFeeCalculator/i18n/pl.ts +152 -0
- package/src/tool/courtFeeCalculator/i18n/pt.ts +152 -0
- package/src/tool/courtFeeCalculator/i18n/ru.ts +152 -0
- package/src/tool/courtFeeCalculator/i18n/sv.ts +152 -0
- package/src/tool/courtFeeCalculator/i18n/tr.ts +152 -0
- package/src/tool/courtFeeCalculator/i18n/zh.ts +152 -0
- package/src/tool/courtFeeCalculator/index.ts +16 -8
- package/src/tool/debtSnowball/i18n/de.ts +160 -0
- package/src/tool/debtSnowball/i18n/id.ts +160 -0
- package/src/tool/debtSnowball/i18n/it.ts +160 -0
- package/src/tool/debtSnowball/i18n/ja.ts +157 -0
- package/src/tool/debtSnowball/i18n/ko.ts +160 -0
- package/src/tool/debtSnowball/i18n/nl.ts +160 -0
- package/src/tool/debtSnowball/i18n/pl.ts +160 -0
- package/src/tool/debtSnowball/i18n/pt.ts +160 -0
- package/src/tool/debtSnowball/i18n/ru.ts +160 -0
- package/src/tool/debtSnowball/i18n/sv.ts +160 -0
- package/src/tool/debtSnowball/i18n/tr.ts +160 -0
- package/src/tool/debtSnowball/i18n/zh.ts +160 -0
- package/src/tool/debtSnowball/index.ts +17 -9
- package/src/tool/fireCalculator/i18n/de.ts +261 -0
- package/src/tool/fireCalculator/i18n/id.ts +261 -0
- package/src/tool/fireCalculator/i18n/it.ts +261 -0
- package/src/tool/fireCalculator/i18n/ja.ts +261 -0
- package/src/tool/fireCalculator/i18n/ko.ts +261 -0
- package/src/tool/fireCalculator/i18n/nl.ts +261 -0
- package/src/tool/fireCalculator/i18n/pl.ts +261 -0
- package/src/tool/fireCalculator/i18n/pt.ts +261 -0
- package/src/tool/fireCalculator/i18n/ru.ts +261 -0
- package/src/tool/fireCalculator/i18n/sv.ts +261 -0
- package/src/tool/fireCalculator/i18n/tr.ts +261 -0
- package/src/tool/fireCalculator/i18n/zh.ts +261 -0
- package/src/tool/fireCalculator/index.ts +15 -7
- package/src/tool/ibanBicSwiftConverter/i18n/de.ts +128 -0
- package/src/tool/ibanBicSwiftConverter/i18n/id.ts +128 -0
- package/src/tool/ibanBicSwiftConverter/i18n/it.ts +128 -0
- package/src/tool/ibanBicSwiftConverter/i18n/ja.ts +128 -0
- package/src/tool/ibanBicSwiftConverter/i18n/ko.ts +128 -0
- package/src/tool/ibanBicSwiftConverter/i18n/nl.ts +128 -0
- package/src/tool/ibanBicSwiftConverter/i18n/pl.ts +128 -0
- package/src/tool/ibanBicSwiftConverter/i18n/pt.ts +128 -0
- package/src/tool/ibanBicSwiftConverter/i18n/ru.ts +128 -0
- package/src/tool/ibanBicSwiftConverter/i18n/sv.ts +128 -0
- package/src/tool/ibanBicSwiftConverter/i18n/tr.ts +128 -0
- package/src/tool/ibanBicSwiftConverter/i18n/zh.ts +128 -0
- package/src/tool/ibanBicSwiftConverter/index.ts +15 -7
- package/src/tool/inflation/i18n/de.ts +297 -0
- package/src/tool/inflation/i18n/id.ts +297 -0
- package/src/tool/inflation/i18n/it.ts +297 -0
- package/src/tool/inflation/i18n/ja.ts +297 -0
- package/src/tool/inflation/i18n/ko.ts +297 -0
- package/src/tool/inflation/i18n/nl.ts +297 -0
- package/src/tool/inflation/i18n/pl.ts +297 -0
- package/src/tool/inflation/i18n/pt.ts +297 -0
- package/src/tool/inflation/i18n/ru.ts +297 -0
- package/src/tool/inflation/i18n/sv.ts +297 -0
- package/src/tool/inflation/i18n/tr.ts +297 -0
- package/src/tool/inflation/i18n/zh.ts +297 -0
- package/src/tool/inflation/index.ts +17 -9
- package/src/tool/lateInterest/i18n/de.ts +224 -0
- package/src/tool/lateInterest/i18n/id.ts +224 -0
- package/src/tool/lateInterest/i18n/it.ts +224 -0
- package/src/tool/lateInterest/i18n/ja.ts +224 -0
- package/src/tool/lateInterest/i18n/ko.ts +224 -0
- package/src/tool/lateInterest/i18n/nl.ts +224 -0
- package/src/tool/lateInterest/i18n/pl.ts +224 -0
- package/src/tool/lateInterest/i18n/pt.ts +224 -0
- package/src/tool/lateInterest/i18n/ru.ts +224 -0
- package/src/tool/lateInterest/i18n/sv.ts +224 -0
- package/src/tool/lateInterest/i18n/tr.ts +224 -0
- package/src/tool/lateInterest/i18n/zh.ts +224 -0
- package/src/tool/lateInterest/index.ts +17 -9
- package/src/tool/legalInterestRate/i18n/de.ts +143 -0
- package/src/tool/legalInterestRate/i18n/id.ts +143 -0
- package/src/tool/legalInterestRate/i18n/it.ts +143 -0
- package/src/tool/legalInterestRate/i18n/ja.ts +143 -0
- package/src/tool/legalInterestRate/i18n/ko.ts +143 -0
- package/src/tool/legalInterestRate/i18n/nl.ts +143 -0
- package/src/tool/legalInterestRate/i18n/pl.ts +143 -0
- package/src/tool/legalInterestRate/i18n/pt.ts +143 -0
- package/src/tool/legalInterestRate/i18n/ru.ts +143 -0
- package/src/tool/legalInterestRate/i18n/sv.ts +143 -0
- package/src/tool/legalInterestRate/i18n/tr.ts +143 -0
- package/src/tool/legalInterestRate/i18n/zh.ts +143 -0
- package/src/tool/legalInterestRate/index.ts +17 -9
- package/src/tool/lotteryOptimizer/i18n/de.ts +177 -0
- package/src/tool/lotteryOptimizer/i18n/id.ts +177 -0
- package/src/tool/lotteryOptimizer/i18n/it.ts +177 -0
- package/src/tool/lotteryOptimizer/i18n/ja.ts +177 -0
- package/src/tool/lotteryOptimizer/i18n/ko.ts +177 -0
- package/src/tool/lotteryOptimizer/i18n/nl.ts +177 -0
- package/src/tool/lotteryOptimizer/i18n/pl.ts +177 -0
- package/src/tool/lotteryOptimizer/i18n/pt.ts +177 -0
- package/src/tool/lotteryOptimizer/i18n/ru.ts +177 -0
- package/src/tool/lotteryOptimizer/i18n/sv.ts +177 -0
- package/src/tool/lotteryOptimizer/i18n/tr.ts +177 -0
- package/src/tool/lotteryOptimizer/i18n/zh.ts +177 -0
- package/src/tool/lotteryOptimizer/index.ts +17 -9
- package/src/tool/mortgage/i18n/de.ts +223 -0
- package/src/tool/mortgage/i18n/id.ts +219 -0
- package/src/tool/mortgage/i18n/it.ts +223 -0
- package/src/tool/mortgage/i18n/ja.ts +219 -0
- package/src/tool/mortgage/i18n/ko.ts +219 -0
- package/src/tool/mortgage/i18n/nl.ts +219 -0
- package/src/tool/mortgage/i18n/pl.ts +219 -0
- package/src/tool/mortgage/i18n/pt.ts +219 -0
- package/src/tool/mortgage/i18n/ru.ts +219 -0
- package/src/tool/mortgage/i18n/sv.ts +219 -0
- package/src/tool/mortgage/i18n/tr.ts +219 -0
- package/src/tool/mortgage/i18n/zh.ts +219 -0
- package/src/tool/mortgage/index.ts +15 -7
- package/src/tool/percentageCalculator/i18n/de.ts +229 -0
- package/src/tool/percentageCalculator/i18n/id.ts +229 -0
- package/src/tool/percentageCalculator/i18n/it.ts +229 -0
- package/src/tool/percentageCalculator/i18n/ja.ts +229 -0
- package/src/tool/percentageCalculator/i18n/ko.ts +229 -0
- package/src/tool/percentageCalculator/i18n/nl.ts +229 -0
- package/src/tool/percentageCalculator/i18n/pl.ts +229 -0
- package/src/tool/percentageCalculator/i18n/pt.ts +229 -0
- package/src/tool/percentageCalculator/i18n/ru.ts +229 -0
- package/src/tool/percentageCalculator/i18n/sv.ts +229 -0
- package/src/tool/percentageCalculator/i18n/tr.ts +229 -0
- package/src/tool/percentageCalculator/i18n/zh.ts +229 -0
- package/src/tool/percentageCalculator/index.ts +15 -7
- package/src/tool/rentIncreaseCalculator/i18n/de.ts +136 -0
- package/src/tool/rentIncreaseCalculator/i18n/id.ts +136 -0
- package/src/tool/rentIncreaseCalculator/i18n/it.ts +136 -0
- package/src/tool/rentIncreaseCalculator/i18n/ja.ts +136 -0
- package/src/tool/rentIncreaseCalculator/i18n/ko.ts +136 -0
- package/src/tool/rentIncreaseCalculator/i18n/nl.ts +136 -0
- package/src/tool/rentIncreaseCalculator/i18n/pl.ts +136 -0
- package/src/tool/rentIncreaseCalculator/i18n/pt.ts +136 -0
- package/src/tool/rentIncreaseCalculator/i18n/ru.ts +136 -0
- package/src/tool/rentIncreaseCalculator/i18n/sv.ts +136 -0
- package/src/tool/rentIncreaseCalculator/i18n/tr.ts +136 -0
- package/src/tool/rentIncreaseCalculator/i18n/zh.ts +136 -0
- package/src/tool/rentIncreaseCalculator/index.ts +17 -9
- package/src/types.ts +1 -1
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { LotteryOptimizerUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'otimizador-loterias-calculadora-probabilidades';
|
|
6
|
+
const title = 'Otimizador de Loterias e Calculadora de Probabilidades';
|
|
7
|
+
const description = 'Analise as suas probabilidades na Lotaria de Natal, Euromilhões e Bonoloto. Calcule o número ideal de décimos e o valor esperado da sua aposta.';
|
|
8
|
+
|
|
9
|
+
const faqData = [
|
|
10
|
+
{
|
|
11
|
+
question: 'O que é a esperança matemática na lotaria?',
|
|
12
|
+
answer: 'É o valor médio que espera ganhar por cada euro apostado. Em quase todas as lotarias, a esperança matemática é negativa (normalmente perde 0,50€ por cada 1€ jogado), o que significa que, a longo prazo, o sistema ganha sempre.',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'É melhor jogar muitos números ou muitos décimos do mesmo?',
|
|
16
|
+
answer: 'Se procura ganhar "algo", diversificar números aumenta a sua probabilidade de obter prémios menores. Se procura o prémio gordo, jogar um só número dá-lhe a mesma probabilidade, mas maior prémio se ganhar.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: 'Vale mesmo a pena jogar na Lotaria de Natal espanhola?',
|
|
20
|
+
answer: 'De um ponto de vista puramente matemático, não. É devolvido apenas 70% do arrecadado. No entanto, tem uma probabilidade de prémio gordo (1 em 100.000) muito mais alta do que o Euromilhões (1 em 140 milhões).',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: 'Posso melhorar as minhas chances com estatísticas?',
|
|
24
|
+
answer: 'Não. Os sorteios de lotaria são processos aleatórios independentes. O facto de um número ter saído ontem não influencia em nada a sua saída hoje.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'O que significa a "dificuldade" na tabela comparativa?',
|
|
28
|
+
answer: 'É uma medida relativa de quão difícil é ganhar o primeiro prémio. Acessível (menos de 200k), Difícil (menos de 20M), Extrema (mais de 20M).',
|
|
29
|
+
},
|
|
30
|
+
];
|
|
31
|
+
|
|
32
|
+
const howToData = [
|
|
33
|
+
{
|
|
34
|
+
name: 'Selecionar o tipo de sorteio',
|
|
35
|
+
text: 'Escolha entre a Lotaria de Natal, Primitiva, Euromilhões ou Bonoloto para analisar as suas regras específicas.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'Definir o seu investimento',
|
|
39
|
+
text: 'Indique quantos décimos ou apostas planeia comprar para este sorteo.',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: 'Analisar probabilidades críticas',
|
|
43
|
+
text: 'Observe as possibilidades reais de ganhar o primeiro prémio frente a prémios menores ou o reembolso.',
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: 'Avaliar o risco/benefício',
|
|
47
|
+
text: 'Reveja a esperança matemática para entender quanto dinheiro está estatisticamente a "dar" por cada euro investido.',
|
|
48
|
+
},
|
|
49
|
+
];
|
|
50
|
+
|
|
51
|
+
const bibliographyData = [
|
|
52
|
+
{
|
|
53
|
+
name: 'Loterías y Apuestas del Estado (SELAE) - Portal da Transparência',
|
|
54
|
+
url: 'https://www.selae.es/',
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
name: 'Matemática da Lotaria de Natal - RSME',
|
|
58
|
+
url: 'https://rsme.es/',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
name: 'O Critério de Kelly e a Gestão de Riscos',
|
|
62
|
+
url: 'https://www.investopedia.com/',
|
|
63
|
+
},
|
|
64
|
+
];
|
|
65
|
+
|
|
66
|
+
const seoData = [
|
|
67
|
+
{
|
|
68
|
+
type: 'title',
|
|
69
|
+
text: 'A Matemática da Esperança',
|
|
70
|
+
level: 2,
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
type: 'paragraph',
|
|
74
|
+
html: 'Jogar na lotaria é, para muitos, a compra de uma ilusão por alguns euros. No entanto, por trás dos sorteios reside uma das áreas mais fascinantes da matemática: a estatística de probabilidades extremas.',
|
|
75
|
+
},
|
|
76
|
+
];
|
|
77
|
+
|
|
78
|
+
const gameTranslations = {
|
|
79
|
+
gordo: {
|
|
80
|
+
name: 'Lotaria de Natal (El Gordo)',
|
|
81
|
+
description: 'A maior distribuição de prémios do mundo. Probabilidade alta de ganhar algo.',
|
|
82
|
+
},
|
|
83
|
+
nino: {
|
|
84
|
+
name: 'Lotaria do Menino (El Niño)',
|
|
85
|
+
description: 'Triplica as possibilidades de reembolso em relação ao Natal.',
|
|
86
|
+
},
|
|
87
|
+
euromillones: {
|
|
88
|
+
name: 'Euromilhões',
|
|
89
|
+
description: 'Prémios astronómicos, probabilidades quase impossíveis.',
|
|
90
|
+
},
|
|
91
|
+
primitiva: {
|
|
92
|
+
name: 'A Primitiva',
|
|
93
|
+
description: 'A lotaria mais antiga de Espanha. Difícil mas mais barata.',
|
|
94
|
+
},
|
|
95
|
+
bonoloto: {
|
|
96
|
+
name: 'Bonoloto',
|
|
97
|
+
description: 'A mais económica. Ideal para jogar diariamente com pouco orçamento.',
|
|
98
|
+
},
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
102
|
+
'@context': 'https://schema.org',
|
|
103
|
+
'@type': 'FAQPage',
|
|
104
|
+
mainEntity: faqData.map((item) => ({
|
|
105
|
+
'@type': 'Question',
|
|
106
|
+
name: item.question,
|
|
107
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
108
|
+
})),
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
const howToSchema: WithContext<HowTo> = {
|
|
112
|
+
'@context': 'https://schema.org',
|
|
113
|
+
'@type': 'HowTo',
|
|
114
|
+
name: title,
|
|
115
|
+
description,
|
|
116
|
+
step: howToData.map((step, i) => ({
|
|
117
|
+
'@type': 'HowToStep',
|
|
118
|
+
position: i + 1,
|
|
119
|
+
name: step.name,
|
|
120
|
+
text: step.text,
|
|
121
|
+
})),
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
125
|
+
'@context': 'https://schema.org',
|
|
126
|
+
'@type': 'SoftwareApplication',
|
|
127
|
+
name: title,
|
|
128
|
+
description,
|
|
129
|
+
applicationCategory: 'FinanceApplication',
|
|
130
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
export const content: ToolLocaleContent<LotteryOptimizerUI> = {
|
|
134
|
+
slug,
|
|
135
|
+
title,
|
|
136
|
+
description,
|
|
137
|
+
faqTitle: 'Perguntas Frequentes',
|
|
138
|
+
bibliographyTitle: 'Fontes e Referências',
|
|
139
|
+
ui: {
|
|
140
|
+
gameTranslations,
|
|
141
|
+
labelTitle: 'Otimizador de Loterias',
|
|
142
|
+
labelDescription: 'Compare sorteios, calcule a sua esperança matemática e jogue com cabeça.',
|
|
143
|
+
labelSelectGame: 'Selecione uma lotaria',
|
|
144
|
+
labelConfigurePlay: 'Configure a sua jogada',
|
|
145
|
+
labelAdjustQuantity: 'Ajuste a quantidade de participações para ver a sua probabilidade real.',
|
|
146
|
+
labelTotalInvestment: 'Investimento Total',
|
|
147
|
+
labelTickets: 'Quantidade de Décimos / Apostas',
|
|
148
|
+
labelUnits: 'unidades',
|
|
149
|
+
labelExposureAnalysis: 'Análise de Exposição',
|
|
150
|
+
labelSelectLottery: 'Selecione uma lotaria para ver a análise de risco.',
|
|
151
|
+
labelOptimalCutoff: 'Ponto de Corte Sugerido',
|
|
152
|
+
labelProbabilitySuccess: 'Probabilidade de Sucesso',
|
|
153
|
+
labelExpectedValue: 'Valor Esperado (EV)',
|
|
154
|
+
labelReturnTheoretical: 'Retorno teórico por cada jogada realizada.',
|
|
155
|
+
labelSocialReturnIndex: 'Índice de Rentabilidade Social',
|
|
156
|
+
labelLow: 'Baixa',
|
|
157
|
+
labelMedium: 'Média',
|
|
158
|
+
labelHigh: 'Alta',
|
|
159
|
+
labelComparison: 'Comparação de Prémios',
|
|
160
|
+
labelLottery: 'Lotaria',
|
|
161
|
+
labelCost: 'Custo',
|
|
162
|
+
labelTypicalPrize: 'Prémio Típico',
|
|
163
|
+
labelDifficulty: 'Dificuldade',
|
|
164
|
+
labelAccessible: 'Acessível',
|
|
165
|
+
labelDifficult: 'Difícil',
|
|
166
|
+
labelExtreme: 'Extrema',
|
|
167
|
+
labelNote: 'Nota: Os prémios de Natal e El Niño são por décimo (20€). Euromilhões, etc. são jackpots típicos.',
|
|
168
|
+
currencySymbol: '€',
|
|
169
|
+
currencyCode: 'EUR',
|
|
170
|
+
currencyLocale: 'pt-PT',
|
|
171
|
+
},
|
|
172
|
+
faq: faqData,
|
|
173
|
+
howTo: howToData,
|
|
174
|
+
bibliography: bibliographyData,
|
|
175
|
+
seo: seoData,
|
|
176
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
177
|
+
};
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { LotteryOptimizerUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'optimizator-loterei-kalkulyator-veroyatnosti';
|
|
6
|
+
const title = 'Оптимизатор лотерей и калькулятор вероятности';
|
|
7
|
+
const description = 'Проанализируйте свои шансы в рождественской лотерее Испании, Euromillions и Bonoloto. Рассчитайте оптимальное количество билетов и ожидаемую стоимость ставки.';
|
|
8
|
+
|
|
9
|
+
const faqData = [
|
|
10
|
+
{
|
|
11
|
+
question: 'Что такое математическое ожидание в лотерее?',
|
|
12
|
+
answer: 'Это среднее значение, которое вы ожидаете выиграть на каждый поставленный евро. Почти во всех лотереях математическое ожидание отрицательное (обычно вы теряете 0,50€ на каждый 1€), что означает, что в долгосрочной перспективе заведение всегда выигрывает.',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'Что лучше: играть на много разных номеров или купить много билетов с одним и тем же номером?',
|
|
16
|
+
answer: 'Если вы хотите выиграть "хоть что-то", диверсификация номеров увеличивает вероятность получения мелких призов. Если вы нацелены на джекпот, игра на один номер дает ту же вероятность, но больший выигрыш в случае успеха.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: 'Действительно ли стоит играть в рождественскую лотерею Испании (El Gordo)?',
|
|
20
|
+
answer: 'С чисто математической точки зрения — нет. Возвращается только 70% от собранных средств. Тем не Aires, вероятность выигрыша главного приза (1 к 100 000) намного выше, чем в Euromillions (1 к 140 миллионам).',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: 'Могу ли я улучшить свои шансы с помощью статистики?',
|
|
24
|
+
answer: 'Нет. Розыгрыши лотереи — это независимые случайные процессы. То, что номер выпал вчера, абсолютно никак не влияет на то, выпадет ли он сегодня.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'Что означает "сложность" в сравнительной таблице?',
|
|
28
|
+
answer: 'Это относительная мера того, насколько трудно выиграть первый приз. Доступно (менее 200 тыс.), Трудно (менее 20 млн), Экстремально (более 20 млн).',
|
|
29
|
+
},
|
|
30
|
+
];
|
|
31
|
+
|
|
32
|
+
const howToData = [
|
|
33
|
+
{
|
|
34
|
+
name: 'Выберите тип розыгрыша',
|
|
35
|
+
text: 'Выберите рождественскую лотерею, Primitiva, Euromillions или Bonoloto.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'Определите сумму инвестиций',
|
|
39
|
+
text: 'Укажите, сколько билетов или ставок вы планируете купить для этого розыгрыша.',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: 'Проанализируйте критические вероятности',
|
|
43
|
+
text: 'Посмотрите реальные шансы на выигрыш первого приза по сравнению с мелкими призами или возвратом ставки.',
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: 'Оцените риск/выгоду',
|
|
47
|
+
text: 'Проверьте математическое ожидание, чтобы понять, сколько денег вы статистически "дарите" за каждый вложенный евро.',
|
|
48
|
+
},
|
|
49
|
+
];
|
|
50
|
+
|
|
51
|
+
const bibliographyData = [
|
|
52
|
+
{
|
|
53
|
+
name: 'Loterías y Apuestas del Estado (SELAE) - Портал прозрачности',
|
|
54
|
+
url: 'https://www.selae.es/',
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
name: 'Математика рождественской лотереи - RSME',
|
|
58
|
+
url: 'https://rsme.es/',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
name: 'Критерий Келли и управление рисками',
|
|
62
|
+
url: 'https://www.investopedia.com/',
|
|
63
|
+
},
|
|
64
|
+
];
|
|
65
|
+
|
|
66
|
+
const seoData = [
|
|
67
|
+
{
|
|
68
|
+
type: 'title',
|
|
69
|
+
text: 'Математика надежды',
|
|
70
|
+
level: 2,
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
type: 'paragraph',
|
|
74
|
+
html: 'Игра в лотерею для многих — это покупка иллюзии за несколько евро. Однако за кулисами скрывается одна из самых увлекательных областей математики: статистика экстремальных вероятностей.',
|
|
75
|
+
},
|
|
76
|
+
];
|
|
77
|
+
|
|
78
|
+
const gameTranslations = {
|
|
79
|
+
gordo: {
|
|
80
|
+
name: 'Рождественская лотерея (El Gordo)',
|
|
81
|
+
description: 'Самое крупное распределение призов в мире. Высокая вероятность выиграть что-то.',
|
|
82
|
+
},
|
|
83
|
+
nino: {
|
|
84
|
+
name: 'Лотерея Младенца (El Niño)',
|
|
85
|
+
description: 'В три раза больше шансов на возврат ставки по сравнению с Рождеством.',
|
|
86
|
+
},
|
|
87
|
+
euromillones: {
|
|
88
|
+
name: 'Euromillions',
|
|
89
|
+
description: 'Астрономические призы, почти невозможные вероятности.',
|
|
90
|
+
},
|
|
91
|
+
primitiva: {
|
|
92
|
+
name: 'La Primitiva',
|
|
93
|
+
description: 'Старейшая лотерея в Испании. Трудно, но дешевле.',
|
|
94
|
+
},
|
|
95
|
+
bonoloto: {
|
|
96
|
+
name: 'Bonoloto',
|
|
97
|
+
description: 'Самая экономичная. Идеально подходит для ежедневной игры с небольшим бюджетом.',
|
|
98
|
+
},
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
102
|
+
'@context': 'https://schema.org',
|
|
103
|
+
'@type': 'FAQPage',
|
|
104
|
+
mainEntity: faqData.map((item) => ({
|
|
105
|
+
'@type': 'Question',
|
|
106
|
+
name: item.question,
|
|
107
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
108
|
+
})),
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
const howToSchema: WithContext<HowTo> = {
|
|
112
|
+
'@context': 'https://schema.org',
|
|
113
|
+
'@type': 'HowTo',
|
|
114
|
+
name: title,
|
|
115
|
+
description,
|
|
116
|
+
step: howToData.map((step, i) => ({
|
|
117
|
+
'@type': 'HowToStep',
|
|
118
|
+
position: i + 1,
|
|
119
|
+
name: step.name,
|
|
120
|
+
text: step.text,
|
|
121
|
+
})),
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
125
|
+
'@context': 'https://schema.org',
|
|
126
|
+
'@type': 'SoftwareApplication',
|
|
127
|
+
name: title,
|
|
128
|
+
description,
|
|
129
|
+
applicationCategory: 'FinanceApplication',
|
|
130
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
export const content: ToolLocaleContent<LotteryOptimizerUI> = {
|
|
134
|
+
slug,
|
|
135
|
+
title,
|
|
136
|
+
description,
|
|
137
|
+
faqTitle: 'Часто задаваемые вопросы',
|
|
138
|
+
bibliographyTitle: 'Источники и ссылки',
|
|
139
|
+
ui: {
|
|
140
|
+
gameTranslations,
|
|
141
|
+
labelTitle: 'Оптимизатор лотерей',
|
|
142
|
+
labelDescription: 'Сравнивайте розыгрыши, рассчитывайте математическое ожидание и играйте с умом.',
|
|
143
|
+
labelSelectGame: 'Выберите лотерею',
|
|
144
|
+
labelConfigurePlay: 'Настройте свою игру',
|
|
145
|
+
labelAdjustQuantity: 'Отрегулируйте количество билетов, чтобы увидеть свою реальную вероятность.',
|
|
146
|
+
labelTotalInvestment: 'Общие инвестиции',
|
|
147
|
+
labelTickets: 'Количество билетов / ставок',
|
|
148
|
+
labelUnits: 'шт.',
|
|
149
|
+
labelExposureAnalysis: 'Анализ рисков',
|
|
150
|
+
labelSelectLottery: 'Выберите лотерею, чтобы увидеть анализ рисков.',
|
|
151
|
+
labelOptimalCutoff: 'Рекомендуемая точка отсечки',
|
|
152
|
+
labelProbabilitySuccess: 'Вероятность успеха',
|
|
153
|
+
labelExpectedValue: 'Ожидаемая стоимость (EV)',
|
|
154
|
+
labelReturnTheoretical: 'Теоретический возврат за каждую сделанную ставку.',
|
|
155
|
+
labelSocialReturnIndex: 'Индекс социальной рентабельности',
|
|
156
|
+
labelLow: 'Низкий',
|
|
157
|
+
labelMedium: 'Средний',
|
|
158
|
+
labelHigh: 'Высокий',
|
|
159
|
+
labelComparison: 'Сравнение призов',
|
|
160
|
+
labelLottery: 'Лотерея',
|
|
161
|
+
labelCost: 'Стоимость',
|
|
162
|
+
labelTypicalPrize: 'Типичный приз',
|
|
163
|
+
labelDifficulty: 'Сложность',
|
|
164
|
+
labelAccessible: 'Доступно',
|
|
165
|
+
labelDifficult: 'Трудно',
|
|
166
|
+
labelExtreme: 'Экстремально',
|
|
167
|
+
labelNote: 'Примечание: Призы Navidad и El Niño указаны за "десимо" (20€). Euromillions и др. — типичные джекпоты.',
|
|
168
|
+
currencySymbol: '€',
|
|
169
|
+
currencyCode: 'EUR',
|
|
170
|
+
currencyLocale: 'ru-RU',
|
|
171
|
+
},
|
|
172
|
+
faq: faqData,
|
|
173
|
+
howTo: howToData,
|
|
174
|
+
bibliography: bibliographyData,
|
|
175
|
+
seo: seoData,
|
|
176
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
177
|
+
};
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { LotteryOptimizerUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'lotteri-optimerare-sannolikhetskalkylator';
|
|
6
|
+
const title = 'Lotteri optimerare och sannolikhetskalkylator';
|
|
7
|
+
const description = 'Analysera dina chanser i spanska jullotteriet, Euromillions och Bonoloto. Beräkna optimalt antal lotter och det förväntade värdet på din insats.';
|
|
8
|
+
|
|
9
|
+
const faqData = [
|
|
10
|
+
{
|
|
11
|
+
question: 'Vad är väntevärde i lotteri?',
|
|
12
|
+
answer: 'Det är det genomsnittliga värdet du förväntar dig att vinna för varje satsad euro. I nästan alla lotterier är väntevärdet negativt (du förlorar oftast 0,50€ för varje 1€ du spelar), vilket innebär att huset alltid vinner i det långa loppet.',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'Är det bättre att spela på många olika nummer eller många lotter med samma nummer?',
|
|
16
|
+
answer: 'Om du vill vinna "något" ökar diversifiering av nummer din sannolikhet att få mindre vinster. Om du siktar på storvinsten ger spel på ett enda nummer samma sannolikhet, men högre vinst om du vinner.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: 'Är det verkligen lönsamt att spela på det spanska jullotteriet (El Gordo)?',
|
|
20
|
+
answer: 'Ur ett rent matematiskt perspektiv, nej. Endast 70 % av intäkterna betalas ut. Men det har en mycket högre sannolikhet för storvinst (1 på 100 000) än Euromillions (1 på 140 miljoner).',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: 'Kan jag förbättra mina chanser med statistik?',
|
|
24
|
+
answer: 'Nej. Lotteridragningar är oberoende slumpmässiga processer. Att ett nummer drogs igår påverkar inte alls chansen att det dras idag.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'Vad betyder "svårighetsgrad" i jämförelsetabellen?',
|
|
28
|
+
answer: 'Det är ett relativt mått på hur svårt det är att vinna första pris. Tillgänglig (under 200k), Svår (under 20 miljoner), Extrem (över 20 miljoner).',
|
|
29
|
+
},
|
|
30
|
+
];
|
|
31
|
+
|
|
32
|
+
const howToData = [
|
|
33
|
+
{
|
|
34
|
+
name: 'Välj typ av dragning',
|
|
35
|
+
text: 'Välj mellan jullotteriet, Primitiva, Euromillions eller Bonoloto för att analysera deras specifika regler.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'Definiera din investering',
|
|
39
|
+
text: 'Ange hur många lotter eller rader du planerar att köpa.',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: 'Analysera kritiska sannolikheter',
|
|
43
|
+
text: 'Se de verkliga chanserna att vinna första pris jämfört med mindre vinster eller återbetalning.',
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: 'Utvärdera risk/nytta',
|
|
47
|
+
text: 'Kontrollera väntevärdet för att förstå hur mycket pengar du statistiskt sett "ger bort" per investerad euro.',
|
|
48
|
+
},
|
|
49
|
+
];
|
|
50
|
+
|
|
51
|
+
const bibliographyData = [
|
|
52
|
+
{
|
|
53
|
+
name: 'Loterías y Apuestas del Estado (SELAE) - Transparensportal',
|
|
54
|
+
url: 'https://www.selae.es/',
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
name: 'Jullotteriets matematik - RSME',
|
|
58
|
+
url: 'https://rsme.es/',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
name: 'Kellys kriterium och riskhantering',
|
|
62
|
+
url: 'https://www.investopedia.com/',
|
|
63
|
+
},
|
|
64
|
+
];
|
|
65
|
+
|
|
66
|
+
const seoData = [
|
|
67
|
+
{
|
|
68
|
+
type: 'title',
|
|
69
|
+
text: 'Hoppets matematik',
|
|
70
|
+
level: 2,
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
type: 'paragraph',
|
|
74
|
+
html: 'Att spela på lotteri är för många köpet av en illusion för några euro. Men bakom dragningarna döljer sig en av matematikens mest fascinerande grenar: statistiken för extrema sannolikheter.',
|
|
75
|
+
},
|
|
76
|
+
];
|
|
77
|
+
|
|
78
|
+
const gameTranslations = {
|
|
79
|
+
gordo: {
|
|
80
|
+
name: 'Jullotteriet (El Gordo)',
|
|
81
|
+
description: 'Världens största vinstutdelning. Hög sannolikhet att vinna något.',
|
|
82
|
+
},
|
|
83
|
+
nino: {
|
|
84
|
+
name: 'Barnens lotteri (El Niño)',
|
|
85
|
+
description: 'Tredubblar chanserna till återbetalning jämfört med jullotteriet.',
|
|
86
|
+
},
|
|
87
|
+
euromillones: {
|
|
88
|
+
name: 'Euromillions',
|
|
89
|
+
description: 'Astronomiska vinster, nästan omöjliga sannolikheter.',
|
|
90
|
+
},
|
|
91
|
+
primitiva: {
|
|
92
|
+
name: 'La Primitiva',
|
|
93
|
+
description: 'Spaniens äldsta lotteri. Svårt men billigare.',
|
|
94
|
+
},
|
|
95
|
+
bonoloto: {
|
|
96
|
+
name: 'Bonoloto',
|
|
97
|
+
description: 'Den mest ekonomiska. Utmärkt för dagligt spel med liten budget.',
|
|
98
|
+
},
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
102
|
+
'@context': 'https://schema.org',
|
|
103
|
+
'@type': 'FAQPage',
|
|
104
|
+
mainEntity: faqData.map((item) => ({
|
|
105
|
+
'@type': 'Question',
|
|
106
|
+
name: item.question,
|
|
107
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
108
|
+
})),
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
const howToSchema: WithContext<HowTo> = {
|
|
112
|
+
'@context': 'https://schema.org',
|
|
113
|
+
'@type': 'HowTo',
|
|
114
|
+
name: title,
|
|
115
|
+
description,
|
|
116
|
+
step: howToData.map((step, i) => ({
|
|
117
|
+
'@type': 'HowToStep',
|
|
118
|
+
position: i + 1,
|
|
119
|
+
name: step.name,
|
|
120
|
+
text: step.text,
|
|
121
|
+
})),
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
125
|
+
'@context': 'https://schema.org',
|
|
126
|
+
'@type': 'SoftwareApplication',
|
|
127
|
+
name: title,
|
|
128
|
+
description,
|
|
129
|
+
applicationCategory: 'FinanceApplication',
|
|
130
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
export const content: ToolLocaleContent<LotteryOptimizerUI> = {
|
|
134
|
+
slug,
|
|
135
|
+
title,
|
|
136
|
+
description,
|
|
137
|
+
faqTitle: 'Vanliga frågor',
|
|
138
|
+
bibliographyTitle: 'Källor och referenser',
|
|
139
|
+
ui: {
|
|
140
|
+
gameTranslations,
|
|
141
|
+
labelTitle: 'Lotteri optimerare',
|
|
142
|
+
labelDescription: 'Jämför dragningar, beräkna ditt väntevärde och spela med förnuft.',
|
|
143
|
+
labelSelectGame: 'Välj ett lotteri',
|
|
144
|
+
labelConfigurePlay: 'Konfigurera ditt spel',
|
|
145
|
+
labelAdjustQuantity: 'Justera antalet lotter för att se din verkliga sannolikhet.',
|
|
146
|
+
labelTotalInvestment: 'Total investering',
|
|
147
|
+
labelTickets: 'Antal lotter / rader',
|
|
148
|
+
labelUnits: 'st',
|
|
149
|
+
labelExposureAnalysis: 'Exponeringsanalys',
|
|
150
|
+
labelSelectLottery: 'Välj ett lotteri för att se riskanalysen.',
|
|
151
|
+
labelOptimalCutoff: 'Föreslagen brytpunkt',
|
|
152
|
+
labelProbabilitySuccess: 'Sannolikhet för framgång',
|
|
153
|
+
labelExpectedValue: 'Väntevärde (EV)',
|
|
154
|
+
labelReturnTheoretical: 'Teoretisk återbetalning per spelas rad.',
|
|
155
|
+
labelSocialReturnIndex: 'Index för social lönsamhet',
|
|
156
|
+
labelLow: 'Låg',
|
|
157
|
+
labelMedium: 'Medel',
|
|
158
|
+
labelHigh: 'Hög',
|
|
159
|
+
labelComparison: 'Jämförelse av vinster',
|
|
160
|
+
labelLottery: 'Lotteri',
|
|
161
|
+
labelCost: 'Kostnad',
|
|
162
|
+
labelTypicalPrize: 'Typisk vinst',
|
|
163
|
+
labelDifficulty: 'Svårighetsgrad',
|
|
164
|
+
labelAccessible: 'Tillgänglig',
|
|
165
|
+
labelDifficult: 'Svår',
|
|
166
|
+
labelExtreme: 'Extrem',
|
|
167
|
+
labelNote: 'Obs: Vinster för jullotteriet och El Niño är per "décimo" (20€). Euromillions etc. är typiska jackpottar.',
|
|
168
|
+
currencySymbol: '€',
|
|
169
|
+
currencyCode: 'EUR',
|
|
170
|
+
currencyLocale: 'sv-SE',
|
|
171
|
+
},
|
|
172
|
+
faq: faqData,
|
|
173
|
+
howTo: howToData,
|
|
174
|
+
bibliography: bibliographyData,
|
|
175
|
+
seo: seoData,
|
|
176
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
177
|
+
};
|