<bgdev />free

Вход Регистрация

[РЕШЕНО (дано този път наистина)] Малко математика като за полу-, цели и още по-цели идиоти
1

0 1 2
#20510 (ツ) гофи2
Създадено на 05.12.2020, видяно: 2094 пъти.

Курвазие, може ли още една услуга?

Би ли пуснал в алгоритъма си, следните IBAN:

BG92UBBS80021088489340 60 BG45UBBS80021091670040 60 BG62TTBB94001528480941 79 BG47UNCR70001523776977 60 BG65RZBB91551009352869 79 BG51TTBB94001527702326 79 BG96TTBB94001528743490 79 BG19RZBB91551011398942 79 BG06STSA93001528484951 79 BG40RZBB91551009680791 79 BG49STSA93001528741421 79 BG58TTBB94001527702685 79 BG03STSA93000025186086 79 BG85UBBS80021083643540 60 BG38STSA93001528781971 79 BG50TTBB94001527701956 79 BG46STSA93000026213706 79 BG84RZBB91551010887358 79 BG94STSA93000025737348 79 BG16UBBS80021093947540 60 BG20STSA93000026499257 79 BG48UBBS80021088486640 60 BG95UBBS80021088487540 60 BG18UNCR70001523431015 60 BG20STSA93000026427574 79 BG92TTBB94001527703140 79 BG40UBBS80021088675740 60 BG65STSA93001528750639 79 BG91TTBB94001527702673 79 BG12TTBB94001527702252 79 BG14TTBB94001528131053 79 BG14TTBB94001527701731 79 BG44STSA93000025601575 79 BG58STSA93000000243486 79 BG26TTBB94001527702291 79 BG39UBBS80021088482340 60 BG02STSA93001528135435 79 BG07TTBB94001528229149 79 BG19UNCR70001523802022 60 BG24STSA93000025179500 79 BG17TTBB94001527702356 79 BG38TTBB94001528653742 79 BG77STSA93000026047860 79 BG97UBBS80021088631840 60 BG13TTBB94001527701943 79 BG42RZBB91551008580484 79 BG49STSA93000025721765 79 BG51STSA93000025781869 79 BG16UBBS80021088486440 60 BG93RZBB91551097956530 79 BG04STSA93000025737319 79 BG52TTBB94001528774158 79 BG35UBBS80021088455640 60 BG70STSA93000025733609 79 BG11STSA93000025118624 79 BG58TTBB94001528743398 79 BG66UBBS80021088456440 60 BG69STSA93000027143231 79 BG88TTBB94001528770794 79 BG86UBBS80021088677240 60 BG31UNCR70001523774937 60 BG44TTBB94001527702355 79 BG90STSA93000025743919 79 BG36UBBS80021091830640 60 BG64TTBB94001527702771 79 BG06RZBB91551009391567 79 BG86UBBS80021089230140 60 BG54UBBS80021091887740 60 BG78TTBB94001527702713 79 BG10STSA93000027041570 79 BG34RZBB91551011773771 79 BG15STSA93000025520229 79 BG34RZBB91551010904748 79 BG04UBBS80021089046540 60 BG27TTBB94001527702758 79 BG16TTBB94001528464309 79 BG21TTBB94001527702284 79 BG62STSA93000025158931 79 BG66TTBB94001527702056 79 BG52UNCR70001523692594 60 BG15UBBS80021091891740 60 BG40TTBB94001528737514 79 BG07UBBS80021088482140 60 BG79UNCR70001523414494 60 BG17TTBB94001527701677 79 BG88STSA93000026043588 79 BG04UBBS80021088939840 60 BG22UNCR70001523787321 60 BG26TTBB94001527703067 79 BG09STSA93001528741171 79 BG05STSA93001528509995 79 BG11TTBB94001527702658 79 BG73RZBB91551007969893 79

Може да не е всички, а например 5 произволни.

Отдясно е числото, което получавам. Това са 93 от от 273 сметки, които извадих от банката. Останалите получавам единица. Би трябвало тези IBAN да са верни, защото са правени преводи по тях. Аз точно затова ги използвах, за да си изпробвам алгоритъма. Искам да разбера, дали проблема е в алгоритъма или аз съм допуснал грешка, която не съм хванал.

Благодаря!

#20511 (ツ) гофи2
Последно редактирано на 05.12.2020 от гофи2, видяно: 2093 пъти.

Сега като ги сложих, забелязах, че всички са или 60 или 79. Това възможно ли е да значи нещо? Нищо не разбирам от математика :(((

доп.

====

Разгледах, какво се случва в предните сметки. Всички стигат до 60 или 79, но тръгва от различни числа от предната врътла като: 6; 7; 15; 17; 25; 35; 37; 44; 54; 56; 64; 66; 83; 85; 95.

#20512 (ツ) Courvoisier
Последно редактирано на 05.12.2020 от Courvoisier, видяно: 2086 пъти.

Довечера, ще ги пусна. Ако бързаш, виж C# online, пейстни кода от началните коментари и само смени input.

#20513 (ツ) гофи2
Последно редактирано на 05.12.2020 от гофи2, видяно: 2081 пъти.

Не бързам. Правя услуга на съпругата, а днес е неработен ден. Не знам, какво е C# online. Аз всъщност съм линуксар.

доп.

====

Реално, то не е и важно. Ако съм сбъркал с преписването на някой от сканираните сметки, то превода на стипендийте ще гръмне и няма да мине. След това ще го редактира с верния и всичко ще заспи. Аз обаче съм си парче психопат и не обичам недоизпипани работи.

#20514 (ツ) Courvoisier
Създадено на 05.12.2020, видяно: 2079 пъти.

Някакъв онлайн едитор, например .NET Fiddle. Успях от телефона, първият на уникредит е валиден. Example in .NET Fiddle.

Пейстни скрипта, може да го докарам до AOO, мясал на VB.

#20515 (ツ) Courvoisier
Последно редактирано на 05.12.2020 от Courvoisier, видяно: 2077 пъти.

Коя банка е TTBB9400? Другите всичките ги знам наизуст :D От IBAN-a може да извадиш BAE кода, който е вързан към BIC. Ако се чудиш защо вече не искат BIC за ЕС, от това е. Но SEPA-та си е скъпа, с крипто се трансферират по-евтино пари. Донякъде и с револют. Може да правиш и преводи чрез финтехове, също са по- евтини.

БАЕ към BIC

Видях, TTBB9400 е SG Express Bank. Тях май ги купиха ДСК. Може да имаш валиден на чексума но неиздаден IBAN. Например, познати имаха ядове, когато пощенска погълна пиреус и алфа. Реално дали може да провериш дали този IBAN е издаден зависи от възможностите на всяка банка. Ако те не предоставят API, а без да си говорите надебело, дори и да имат, няма да дадат, трудно ще знаеш. Ако е плащане през БИСЕРА, Борика също знаят, но и с тях са дебели разговори. А някои банки не работят с Борика толкова много, като например Алианц и Райфайзен.

#20516 (ツ) гофи2
Последно редактирано на 05.12.2020 от гофи2, видяно: 2073 пъти.

TTBBBG22 e BIC на Сосиете женерал Eкспресбанк. Някои от тези преводи са били миналата година. От първи юни тази година вече няма такива IBAN. Бяха погълнати от БДСК АД.

#20517 (ツ) Courvoisier
Последно редактирано на 05.12.2020 от Courvoisier, видяно: 2069 пъти.

След BGxx имаш 4 букви и 4 цифри, те са БАЕ. От БАЕ идентифицираш коя банка е. Което е достатъчно, нл може да извадиш BIC от БАЕ също.

#20518 (ツ) гофи2
Последно редактирано на 05.12.2020 от гофи2, видяно: 2067 пъти.

Тръгна. Опитах няколко и всички са TRUE. Има ли начин да накарам този код да ми казва на всяка врътка какъв контролен сбор е получил, за да ги сравня с моите и да видя, на коя стъпка точно се дъня?

#20519 (ツ) гофи2
Последно редактирано на 05.12.2020 от гофи2, видяно: 2067 пъти.
Courvoisier

След BGxx имаш 4 букви и 4 цифри, те са БАЕ. От БАЕ идентифицираш коя банка е. Което е достатъчно, нл може да извадиш BIC от БАЕ също.

Не винаги банковия индетификационен код завършва на България, София. Пример е точно БИК-а на Експрес. Виж го в предното ми мнение.

Сосиете имаха само един БАЕ и той беше TTBB9400. Както казах, от средата на годината вече го няма.

доп.

===

Не искам да издребнявам, ама Бизнес-адресируемата единица не служи за индетификация на банката (за което служи бизнес кода издаден от SWIFT), а за определяне на физическото местоположение на лицензирания оператор на преводи. Обаче, когато е само един БАЕ (като в този случай), това губи смисъл.

#20521 (ツ) Courvoisier
Създадено на 05.12.2020, видяно: 2063 пъти.
гофи2

Тръгна. Опитах няколко и всички са TRUE. Има ли начин да накарам този код да ми казва на всяка врътка какъв контролен сбор е получил, за да ги сравня с моите и да видя, на коя стъпка точно се дъня?

Сложи Console.WriteLine(някояПроменлива) на стъпката, например.

#20522 (ツ) Courvoisier
Последно редактирано на 05.12.2020 от Courvoisier, видяно: 2059 пъти.
гофи2

Не искам да издребнявам, ама Бизнес-адресируемата единица не служи за индетификация на банката (за което служи бизнес кода издаден от SWIFT), а за определяне на физическото местоположение на лицензирания оператор на преводи. Обаче, когато е само един БАЕ (като в този случай), това губи смисъл.

Може. Но мисля, че БНБ имат една таблица кое с кое и Борика така го правят. Но за кредитни и бюджетни плащания в БИСЕРА и за SEPA не ти искат BIC. Мисля, че и в SWIFT за ЕС отпадна, но не съм сигурен. Не съм го писал аз сървиса, но консумирам такъв, като си напишеш IBAN-a и знам от коя банка ми плащаш и кой е нейния BIC. Но от там нататък чакам банката да ми каже ще има ли пари или няма да има. Аз съм един вид ПОС. Или ще взема пари или не. Каква е причината, IBAN издателя си знае (или картоиздателя).

#20523 (ツ) гофи2
Създадено на 05.12.2020, видяно: 2055 пъти.
Courvoisier
гофи2

Тръгна. Опитах няколко и всички са TRUE. Има ли начин да накарам този код да ми казва на всяка врътка какъв контролен сбор е получил, за да ги сравня с моите и да видя, на коя стъпка точно се дъня?

Сложи Console.WriteLine(някояПроменлива) на стъпката, например.

Един тъп въпрос. На BG31UNCR70001523774937 получих редичката 30; 11; 16; 64; 60; 20; 13; 40; 12; 23; 36; 70; 26; 68; 4; 47; 89; 21; 25; 59; 15; 54; 56; 76; 87; 0; 1 (много съм тъп, нищо общо с моята). Обаче нали винаги първата трябва да е едно. Как при теб стана 30??? И двамата с италианския благородник казахте, че се получава едно (май имаше някакво умножение по нула и затова винаги е едно).

#20525 (ツ) Courvoisier
Последно редактирано на 05.12.2020 от Courvoisier, видяно: 2052 пъти.

Дон Реба е от руска книга, и Джони я е чел :Д

Ще го видя вкъщи. Грундирам, че трябва да боядисвам.

#20526 (ツ) гофи2
Създадено на 05.12.2020, видяно: 2045 пъти.
Courvoisier

...

Видях, TTBB9400 е SG Express Bank. Тях май ги купиха ДСК. Може да имаш валиден на чексума но неиздаден IBAN. Например, познати имаха ядове, когато пощенска погълна пиреус и алфа. Реално дали може да провериш дали този IBAN е издаден зависи от възможностите на всяка банка. Ако те не предоставят API, а без да си говорите надебело, дори и да имат, няма да дадат, трудно ще знаеш. Ако е плащане през БИСЕРА, Борика също знаят, но и с тях са дебели разговори. А някои банки не работят с Борика толкова много, като например Алианц и Райфайзен.

СКард пък връзват картови към IBAN. Доколкото знам, фирми на сърма груп пишат повечето софтуер, както и булпрос донякъде. Мисля че картовите са писани от сърмата.

Сега виждам, че си допълнил мнението.

Да Експрес бяха купени от БДСК. Това са преводи от миналата учебна година, когато такива сметки все още е имало. Но въпреки, че такава банка вече няма у нас, то IBAN, които са били издадени от нея, би трябвало да са валидни по стандарт, макар несъществуващи днес.

Другото, което говориш, е много висока топка за мен. Аз съм бил винаги дребна писарушка и никой, никакви програмни интерфейси не би ми дал. Телефона не би ми вдигнал.

В случая си говорим за едно обикновено масово плащане. Масовото плащане е един списък във формат CSV, който даваш на банката си (или банкирането) и се превеждат наведнъж (пакетно по-точно) множество възнаграждения. Ако отсрещната банка не хареса превода (специално за сгрешена сметка, а не по друг повод) то го връща по БИСЕРА. Изобщо не постъпва при тях. Това е много подобен механизъм на тоя, при който изпращаш писмо на несъществуваща ел. поща. Връщането е автоматично от другата страна и няма ръчна намеса на служител. Но само по този повод. Например при съществуваща сметка, но грешен титуляр, служители на банката решават за всеки един превод дали да постъпи.

#20529 (ツ) гофи2
Последно редактирано на 05.12.2020 от гофи2, видяно: 2044 пъти.
Courvoisier

Дон Реба е от руска книга, и Джони я е чел :Д

Ще го видя вкъщи. Грундирам, че трябва да боядисвам.

Това:

Console.WriteLine(checksum);

го сложих в:

            for (var i = 1; i < asciiCoded.Length; i++)
            {
                checksum *= 10;
                checksum += int.Parse(asciiCoded.Substring(i, 1));
                checksum %= 97;
		Console.WriteLine(checksum); 
            }

Мисля, че е правилното място.

#20530 (ツ) Courvoisier
Последно редактирано на 05.12.2020 от Courvoisier, видяно: 2035 пъти.

Ох, то май си имаше такива софтуери, даже май Аладин се казваше един от тях. В момента не познавам хора работещи ТРЗ или подобно, че да правят масови плащания.

Там, където си сложил console.writeline ще ти покаже на всяка стъпка резултатът след модуло. Може да добавиш, да речем console.writeline(promenliva + “text “ + drugaPromenliva); за да ти конкатенира текста.

След последното модуло (последната стъпка) трябва да имаш 1. Преди това може да е друго.

Ако искаш да са на един ред, console.write(...)

#20533 (ツ) гофи2
Създадено на 05.12.2020, видяно: 2028 пъти.
Courvoisier

Ох, то май си имаше такива софтуери, даже май Аладин се казваше един от тях. В момента не познавам хора работещи ТРЗ или подобно, че да правят масови плащания.

Там, където си сложил console.writeline ще ти покаже на всяка стъпка резултатът след модуло. Може да добавиш, да речем console.writeline(promenliva + “text “ + drugaPromenliva); за да ти конкатенира текста.

След последното модуло (последната стъпка) трябва да имаш 1. Преди това може да е друго.

Ако искаш да са на един ред, console.write(...)

Къпах се, а трябва и да готвя.

Точно това исках. Колко ми се получава на всяка стъпка. Ама на първа стъпка според вас двамата винаги трябва да е 1, а тук е 30. Това ми е чуденката. Защо е 30???

=*=

Аладин е Ролс Ройса на програмите за ТРЗ у нас. И е най-скъпия. Някъде над 2 000 лв. е и могат да си го позволят само наистина сериозни работодатели. Всъщност има един по-скъп, в десетки хиляди. Казва се Хермес, но той не е ТРЗ (даже това му е направо слабо), а е УЧР.

Жена ми работи на Мерцедеса. Казва се Омекс (около 900 лв. на година). Нея вече могат да си я позволят и малко над средни (за пазара ни) предприятия. Аз лично съм работел и на Жигулата (демек обикновена таблица, като 90% от работодателите).

Специално на Омекс не съм работил (защото не съм бил в предприятие, което може да си го позволи). И не знам може или не може да проверява IBAN. Но точно в този случай не ми помага особено. Говорим си за стипендии, не може да ги вкараш в програма за заплати. А и аз вкъщи нямам такава.

#20534 (ツ) гофи2
Създадено на 05.12.2020, видяно: 2026 пъти.

Като махнах оптимизацията на първа стъпка винаги да е едно, а да го смята, всички станаха единици. Макар пак някак си моите стъпки да вадят различен резултат от твоя. На първа стъпка имам тройка и чак тогава на втора имам 30 като при теб, 11; 16; 64; 60; 20 и т.н.

БЛАГОДАРЯ!!!

#20535 (ツ) гофи2
Последно редактирано на 05.12.2020 от гофи2, видяно: 2022 пъти.

Опитно открих. Това, което при мен е първа стъпка (тройката от горното) е всъщност входната стойност при теб преди трите преобразувания:


checksum *= 10;
checksum += int.Parse(asciiCoded.Substring(i, 1));
checksum %= 97;

Пробвах и с други сметки.

Като сложа:

Console.WriteLine(checksum);

преди тях и получавам моите врътки.

0 1 2

[РЕШЕНО (дано този път наистина)] Малко математика като за полу-, цели и още по-цели идиоти
1

AsmBB v3.0 (check-in: a316dab8b98d07d9); SQLite v3.42.0 (check-in: 831d0fb2836b71c9);
©2016..2023 John Found; Licensed under EUPL. Powered by Assembly language Created with Fresh IDE