Фрик & Трик Алгоритми

  • Креатор на темата Креатор на темата SkyDriver
  • Време на започнување Време на започнување

SkyDriver

Would like my bananna ?
Член од
31 јули 2008
Мислења
2.140
Поени од реакции
221
Веб-сајт
damjan.resume.mk
Незнам дали ова заслужува посебна тема, ама во последно време хит ми станаа програмчињата со математички „трик“ алгоритми па се одлучив да отворам нова тема, па модераторот нека и ја суди иднината на темава. :)
__

Значи се работи за имплементирање на математички трик алгоритми во апликација, меѓутоа сето тоа симулирано како некое дејствие со цел трикот да има поинтересен ефект и да не неможе туку така лесно да биде сватен од страна на „корисниците“.

Доколку некој има вакви трик алгоритми и доколку би сакал да ги сподели, нека повели... Исто така доколку некој знае каде би можеле да се најдат вакви математички трик алгоритми, ако не му е мука да пише линк или име на тие алгоритми.

Еве од мене имплементирање на алгоритмот „броеви деливи со 9“.
Апликацијата ја пишав и во Python и JavaScript.

Python:
Код:
import random

ch = "!@#$%^&*()_+}{POIUYTREWQASDFFGHJKL:?><MNBVCXZ[]';./,"
length = len(ch)
key = ch[random.randrange(0, length)]
    
def getKey(k):
    tmp = ""
    while True:
        tmp = ch[random.randrange(0, length)]
        if tmp != key:
            break
    return tmp
    
def main():
    print "Zamislite eden dvocifren broj (npr: 54)"
    print "Od brojot koj go zamislivte, odzemete go zbirot na negovite cifri (pr: 54 - (5 + 4) = 45)"
    print "Najdete go svojot rezultat vo tablicata i zapomnete go simbolot do toj broj."
    print "Dokolku go vidovte znakot do vashiot rezutlat, pritisnete enter.\n"
    
    s = "";

    print "#"*80
    for i in xrange(1, 100):
        if i % 9 == 0:
            s += str(i) + key + "\t"
        else:
            s += str(i) + getKey(key) + "\t"
        if i % 10 == 0:
            print s
            s = ""
    print "#"*80
            
    raw_input("\nPritisnete Enter...\n")
    print "Toa e znakot: " + key 
    print ":)"

main()

JavaScript:
Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="description" content="Виртуелен читаш на мисли..." />
    <meta name="author" content="SkyDriver" />
    
	<title>Виртуелен читач на мисли - SkyDriver</title>
    
    <style type="text/css">
		body {
			font-family: Arial, Helvetica, sans-serif;
			font-size: 14px;
		}
	</style>
    
    <script language="javascript">
		var karakter;
		function getKey(len, ch, key) {
			var tmp = "";
			while (true) {
				tmp = ch[Math.floor(Math.random()*len)];
				if(tmp != key) { break; }
			}
			return tmp;
		}

		function Key() {
			alert("Знакот/буквата е: " + karakter + ".\nОбидете се повторно. :)");
			fill();
		}
		
		function fill() {
			var ch = "QWERTYUIOPLKJHGFDSAZXCVBNM/;[]+_)(*&^%$#@!~<>?:{}";
			var len = ch.length;
			var key = ch[Math.floor(Math.random()*len)];
			karakter = key;
			var str = "<table border='0' align='center' width='700px'>";
			var n = 99;
			for(var j=0; j<10; j++) {
				str += "<tr>";
				for(var i=9; i>=0; i--) {
					if(n%9==0) {
						str += "<td>" + n.toString() + key + "</td>";
					} else {
						str += "<td>" + n.toString() + getKey(len, ch, key) + "</td>";
					}
					n--;
				}
				str += "</tr>";
			}
			str += "</table>";
			document.getElementById("start").innerHTML = str;
		}
		
	</script>
</head>

<body>
	<div style="text-align:center; font-size: 20px;">
    	Виртуелен читач на мисли <br />
        SkyDriver
    </div>
    <hr />
    <div style="text-align: center;">
    	Замислете си еден двоцифрен број (пример, 54) <br />
    	Од замислениот број, одземете му го збирот на неговите цифри (пример, 54 - (5+4)) <br />
    	Погледнете ја долната табела и најдете го резултатот кој го добивте од замислениот број. <br />
        До него има еден знак или буква, запомнете го/ja знакот/буквата. <br />
    	И притиснете на долното дугме за да видите дали виртуелниот читач на мисли успеа да ве „прочита“. :)<br />
    </div>
    <hr />
	<div id="start"> </div>
    <hr />
   	<center>
    	<input type='button' value='Резултат' onClick='Key()' />
    </center>
    <script language="javascript"> fill(); </script>
</body>
</html>
 
Код:
#include <iostream>
using namespace std;

int main()
{
    int sum;
    char resp;
    cout<<"      1               2              3               4                5     \n";
    cout<<"-------------   -------------  -------------   -------------   -------------\n";
    cout<<"| 1  3  5  7|   | 2  3  6  7|  | 4  5  6  7|   | 8  9 10 11|   |16 17 18 19|\n";
    cout<<"| 9 11 13 15|   |10 11 14 15|  |12 13 14 15|   |12 13 14 15|   |20 21 22 23|\n";
    cout<<"|17 19 21 23|   |18 19 22 23|  |20 21 22 23|   |24 25 26 27|   |24 25 26 27|\n";
    cout<<"|25 27 29 31|   |26 27 30 31|  |28 29 30 31|   |28 29 30 31|   |28 29 30 31|\n";
    cout<<"-------------   -------------  -------------   -------------   -------------\n";
    sum=0;
    cout<<"Is your number in the first field!? Answer 'y' or 'n'!!!\n";
        cin>>resp;
    if (resp=='y'){
        sum=sum+1;
    }
    cout<<"Is your number in the second field!? Answer 'y' or 'n'!!!\n";
        cin>>resp;
    if (resp=='y'){
        sum=sum+2;
    }
    cout<<"Is your number in the third field!? Answer 'y' or 'n'!!!\n";
        cin>>resp;
    if (resp=='y'){
        sum=sum+4;
    }
    cout<<"Is your number in the fourth field!? Answer 'y' or 'n'!!!\n";
        cin>>resp;
    if (resp=='y'){
        sum=sum+8;
    }
    cout<<"Is your number in the fifth field!? Answer 'y' or 'n'!!!\n";
        cin>>resp;
    if (resp=='y'){
        sum=sum+16;
    }
    cout<<"Your number is : "<<sum<<endl;
    system("pause");
    return 0;
}

;)
 

Kajgana Shop

Back
На врв Bottom