How long does it take to type this?Lenient typing testPrint the fingering for the note on a saxophoneFind the Shortest Swype PathOutput optimal trill fingeringsProgram touch-tone instructions for my fingersWhat is the “Ant-Difficulty” of this string?Determine the “Luck” of a stringGenerate Menu Access KeysHow many times should I press this?Should this identifier be suggested?

declaring a variable twice in IIFE

Validation accuracy vs Testing accuracy

How long does it take to type this?

A function which translates a sentence to title-case

Is it tax fraud for an individual to declare non-taxable revenue as taxable income? (US tax laws)

Why is an old chain unsafe?

How is it possible to have an ability score that is less than 3?

How is the claim "I am in New York only if I am in America" the same as "If I am in New York, then I am in America?

Accidentally leaked the solution to an assignment, what to do now? (I'm the prof)

How can the DM most effectively choose 1 out of an odd number of players to be targeted by an attack or effect?

Why CLRS example on residual networks does not follows its formula?

Is there a familial term for apples and pears?

What are these boxed doors outside store fronts in New York?

Why is "Reports" in sentence down without "The"

Is it possible to make sharp wind that can cut stuff from afar?

How do we improve the relationship with a client software team that performs poorly and is becoming less collaborative?

What would happen to a modern skyscraper if it rains micro blackholes?

What makes Graph invariants so useful/important?

Is it possible to do 50 km distance without any previous training?

How do you conduct xenoanthropology after first contact?

XeLaTeX and pdfLaTeX ignore hyphenation

Can I interfere when another PC is about to be attacked?

Motorized valve interfering with button?

Could a US political party gain complete control over the government by removing checks & balances?



How long does it take to type this?


Lenient typing testPrint the fingering for the note on a saxophoneFind the Shortest Swype PathOutput optimal trill fingeringsProgram touch-tone instructions for my fingersWhat is the “Ant-Difficulty” of this string?Determine the “Luck” of a stringGenerate Menu Access KeysHow many times should I press this?Should this identifier be suggested?













6












$begingroup$


Introduction



I can type at a moderate pace, using the QWERTY keyboard layout. But if a word like yellowwooddoor has a ton of repeated letters, it takes a bit longer to type it. Even worse is when a word like "jump" has the same finger used for multiple different consecutive letters.



Here's how long it takes me to type letters on each finger (very unscientifically measured):



Columns are Finger name, keystrokes/second, seconds/keystroke, and the keys used by each finger



Typing same letter twice: 
L Pinky 5.2 0.1923076923 1qaz
L Ring 5 0.2 2wsx
L Mid 5.3 0.1886792453 3edc
L Index 5.5 0.1818181818 4rfv5tgb
R Thumb 6.5 0.1538461538 [space]
R Index 6.9 0.1449275362 6yhn7ujm
R Mid 6.3 0.1587301587 8ik,
R Ring 6.2 0.1612903226 9ol.
R Pinky 6.1 0.1639344262 0p;'

Typing different letter on same finger:
L Pinky 4.6 0.2173913043
L Ring 4.6 0.2173913043
L Mid 4.5 0.2222222222
L Index 5.3 0.1886792453
R Index 5.4 0.1851851852
R Mid 5.1 0.1960784314
R Ring 5.2 0.1923076923
R Pinky 5.2 0.1923076923


Same data in CSV format.



It takes



.75 * (first_finger_same_letter_time + second_finger_same_letter_time) / 2


time to switch between two fingers.



Challenge



Given a string as input, how long does it take to type it?



  • The "timer" starts the moment the first key is pressed and ends when the last key is pressed. You are just counting the time between keypresses.

  • This is code-golf. Shortest answer in bytes wins.

  • Submission can be either a complete program or function.

  • Input and output any way you want it, stdin/out, function params, file, doesn't matter.

  • Output should be accurate to at least 3 decimal places (+/- 0.001 for rounding error is fine). Leading 0. for numbers under 1 and trailing newline optional.

  • Input will be a string that contains (lowercase) a-z, 0-9, space, semicolon, comma, period, and apostrophe.

  • I always type spaces with my right thumb.

  • I use the normal touch typing fingers (you can also look at the above table for finger-key mappings).

  • Reference code used to generate test cases

Test cases



(empty string or any one-character string) - 0.000



aa - 0.192



fff - 0.364



fj - 0.123



the quick brown fox jumped over the lazy dog - 5.795



yellowwooddoor - 1.983



orangewooddoor - 1.841



jump on it, jump on it - 2.748



type on it, type on it - 2.549



abcdefghijklmnopqrstuvwxyz01234567890 ;,.' - 5.746



ok, this may not be the most accurate but it's in the ballpark, maybe within 30 percent or so. - 12.138










share|improve this question











$endgroup$







  • 1




    $begingroup$
    Are you sure you use the QUERTY keyboard, not the QWERTY one?
    $endgroup$
    – Embodiment of Ignorance
    9 hours ago










  • $begingroup$
    @EmbodimentofIgnorance oops.
    $endgroup$
    – Daniel M.
    9 hours ago















6












$begingroup$


Introduction



I can type at a moderate pace, using the QWERTY keyboard layout. But if a word like yellowwooddoor has a ton of repeated letters, it takes a bit longer to type it. Even worse is when a word like "jump" has the same finger used for multiple different consecutive letters.



Here's how long it takes me to type letters on each finger (very unscientifically measured):



Columns are Finger name, keystrokes/second, seconds/keystroke, and the keys used by each finger



Typing same letter twice: 
L Pinky 5.2 0.1923076923 1qaz
L Ring 5 0.2 2wsx
L Mid 5.3 0.1886792453 3edc
L Index 5.5 0.1818181818 4rfv5tgb
R Thumb 6.5 0.1538461538 [space]
R Index 6.9 0.1449275362 6yhn7ujm
R Mid 6.3 0.1587301587 8ik,
R Ring 6.2 0.1612903226 9ol.
R Pinky 6.1 0.1639344262 0p;'

Typing different letter on same finger:
L Pinky 4.6 0.2173913043
L Ring 4.6 0.2173913043
L Mid 4.5 0.2222222222
L Index 5.3 0.1886792453
R Index 5.4 0.1851851852
R Mid 5.1 0.1960784314
R Ring 5.2 0.1923076923
R Pinky 5.2 0.1923076923


Same data in CSV format.



It takes



.75 * (first_finger_same_letter_time + second_finger_same_letter_time) / 2


time to switch between two fingers.



Challenge



Given a string as input, how long does it take to type it?



  • The "timer" starts the moment the first key is pressed and ends when the last key is pressed. You are just counting the time between keypresses.

  • This is code-golf. Shortest answer in bytes wins.

  • Submission can be either a complete program or function.

  • Input and output any way you want it, stdin/out, function params, file, doesn't matter.

  • Output should be accurate to at least 3 decimal places (+/- 0.001 for rounding error is fine). Leading 0. for numbers under 1 and trailing newline optional.

  • Input will be a string that contains (lowercase) a-z, 0-9, space, semicolon, comma, period, and apostrophe.

  • I always type spaces with my right thumb.

  • I use the normal touch typing fingers (you can also look at the above table for finger-key mappings).

  • Reference code used to generate test cases

Test cases



(empty string or any one-character string) - 0.000



aa - 0.192



fff - 0.364



fj - 0.123



the quick brown fox jumped over the lazy dog - 5.795



yellowwooddoor - 1.983



orangewooddoor - 1.841



jump on it, jump on it - 2.748



type on it, type on it - 2.549



abcdefghijklmnopqrstuvwxyz01234567890 ;,.' - 5.746



ok, this may not be the most accurate but it's in the ballpark, maybe within 30 percent or so. - 12.138










share|improve this question











$endgroup$







  • 1




    $begingroup$
    Are you sure you use the QUERTY keyboard, not the QWERTY one?
    $endgroup$
    – Embodiment of Ignorance
    9 hours ago










  • $begingroup$
    @EmbodimentofIgnorance oops.
    $endgroup$
    – Daniel M.
    9 hours ago













6












6








6





$begingroup$


Introduction



I can type at a moderate pace, using the QWERTY keyboard layout. But if a word like yellowwooddoor has a ton of repeated letters, it takes a bit longer to type it. Even worse is when a word like "jump" has the same finger used for multiple different consecutive letters.



Here's how long it takes me to type letters on each finger (very unscientifically measured):



Columns are Finger name, keystrokes/second, seconds/keystroke, and the keys used by each finger



Typing same letter twice: 
L Pinky 5.2 0.1923076923 1qaz
L Ring 5 0.2 2wsx
L Mid 5.3 0.1886792453 3edc
L Index 5.5 0.1818181818 4rfv5tgb
R Thumb 6.5 0.1538461538 [space]
R Index 6.9 0.1449275362 6yhn7ujm
R Mid 6.3 0.1587301587 8ik,
R Ring 6.2 0.1612903226 9ol.
R Pinky 6.1 0.1639344262 0p;'

Typing different letter on same finger:
L Pinky 4.6 0.2173913043
L Ring 4.6 0.2173913043
L Mid 4.5 0.2222222222
L Index 5.3 0.1886792453
R Index 5.4 0.1851851852
R Mid 5.1 0.1960784314
R Ring 5.2 0.1923076923
R Pinky 5.2 0.1923076923


Same data in CSV format.



It takes



.75 * (first_finger_same_letter_time + second_finger_same_letter_time) / 2


time to switch between two fingers.



Challenge



Given a string as input, how long does it take to type it?



  • The "timer" starts the moment the first key is pressed and ends when the last key is pressed. You are just counting the time between keypresses.

  • This is code-golf. Shortest answer in bytes wins.

  • Submission can be either a complete program or function.

  • Input and output any way you want it, stdin/out, function params, file, doesn't matter.

  • Output should be accurate to at least 3 decimal places (+/- 0.001 for rounding error is fine). Leading 0. for numbers under 1 and trailing newline optional.

  • Input will be a string that contains (lowercase) a-z, 0-9, space, semicolon, comma, period, and apostrophe.

  • I always type spaces with my right thumb.

  • I use the normal touch typing fingers (you can also look at the above table for finger-key mappings).

  • Reference code used to generate test cases

Test cases



(empty string or any one-character string) - 0.000



aa - 0.192



fff - 0.364



fj - 0.123



the quick brown fox jumped over the lazy dog - 5.795



yellowwooddoor - 1.983



orangewooddoor - 1.841



jump on it, jump on it - 2.748



type on it, type on it - 2.549



abcdefghijklmnopqrstuvwxyz01234567890 ;,.' - 5.746



ok, this may not be the most accurate but it's in the ballpark, maybe within 30 percent or so. - 12.138










share|improve this question











$endgroup$




Introduction



I can type at a moderate pace, using the QWERTY keyboard layout. But if a word like yellowwooddoor has a ton of repeated letters, it takes a bit longer to type it. Even worse is when a word like "jump" has the same finger used for multiple different consecutive letters.



Here's how long it takes me to type letters on each finger (very unscientifically measured):



Columns are Finger name, keystrokes/second, seconds/keystroke, and the keys used by each finger



Typing same letter twice: 
L Pinky 5.2 0.1923076923 1qaz
L Ring 5 0.2 2wsx
L Mid 5.3 0.1886792453 3edc
L Index 5.5 0.1818181818 4rfv5tgb
R Thumb 6.5 0.1538461538 [space]
R Index 6.9 0.1449275362 6yhn7ujm
R Mid 6.3 0.1587301587 8ik,
R Ring 6.2 0.1612903226 9ol.
R Pinky 6.1 0.1639344262 0p;'

Typing different letter on same finger:
L Pinky 4.6 0.2173913043
L Ring 4.6 0.2173913043
L Mid 4.5 0.2222222222
L Index 5.3 0.1886792453
R Index 5.4 0.1851851852
R Mid 5.1 0.1960784314
R Ring 5.2 0.1923076923
R Pinky 5.2 0.1923076923


Same data in CSV format.



It takes



.75 * (first_finger_same_letter_time + second_finger_same_letter_time) / 2


time to switch between two fingers.



Challenge



Given a string as input, how long does it take to type it?



  • The "timer" starts the moment the first key is pressed and ends when the last key is pressed. You are just counting the time between keypresses.

  • This is code-golf. Shortest answer in bytes wins.

  • Submission can be either a complete program or function.

  • Input and output any way you want it, stdin/out, function params, file, doesn't matter.

  • Output should be accurate to at least 3 decimal places (+/- 0.001 for rounding error is fine). Leading 0. for numbers under 1 and trailing newline optional.

  • Input will be a string that contains (lowercase) a-z, 0-9, space, semicolon, comma, period, and apostrophe.

  • I always type spaces with my right thumb.

  • I use the normal touch typing fingers (you can also look at the above table for finger-key mappings).

  • Reference code used to generate test cases

Test cases



(empty string or any one-character string) - 0.000



aa - 0.192



fff - 0.364



fj - 0.123



the quick brown fox jumped over the lazy dog - 5.795



yellowwooddoor - 1.983



orangewooddoor - 1.841



jump on it, jump on it - 2.748



type on it, type on it - 2.549



abcdefghijklmnopqrstuvwxyz01234567890 ;,.' - 5.746



ok, this may not be the most accurate but it's in the ballpark, maybe within 30 percent or so. - 12.138







code-golf string number






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 9 hours ago







Daniel M.

















asked 11 hours ago









Daniel M.Daniel M.

1,99111936




1,99111936







  • 1




    $begingroup$
    Are you sure you use the QUERTY keyboard, not the QWERTY one?
    $endgroup$
    – Embodiment of Ignorance
    9 hours ago










  • $begingroup$
    @EmbodimentofIgnorance oops.
    $endgroup$
    – Daniel M.
    9 hours ago












  • 1




    $begingroup$
    Are you sure you use the QUERTY keyboard, not the QWERTY one?
    $endgroup$
    – Embodiment of Ignorance
    9 hours ago










  • $begingroup$
    @EmbodimentofIgnorance oops.
    $endgroup$
    – Daniel M.
    9 hours ago







1




1




$begingroup$
Are you sure you use the QUERTY keyboard, not the QWERTY one?
$endgroup$
– Embodiment of Ignorance
9 hours ago




$begingroup$
Are you sure you use the QUERTY keyboard, not the QWERTY one?
$endgroup$
– Embodiment of Ignorance
9 hours ago












$begingroup$
@EmbodimentofIgnorance oops.
$endgroup$
– Daniel M.
9 hours ago




$begingroup$
@EmbodimentofIgnorance oops.
$endgroup$
– Daniel M.
9 hours ago










2 Answers
2






active

oldest

votes


















4












$begingroup$


JavaScript (Node.js), 180 bytes





s=>(B=Buffer)(s).map(p=c=>(b='23841410645532207643205431765001333746443'[c*45%91%73%41]*2,t+=1/p?p-b?3/8*(g(b)+g(p)):g(b|c!=s):0,p=b,s=c),t=0,g=x=>10/B('4.2.5-75E6?3>4=4AA')[x])&&t


Try it online!



How?



Storing delays



The helper function $g$ takes an integer $0le x le17$ and returns a delay in seconds.



g = x => 10 / Buffer('4.2.5-75E6?3>4=4AA')[x]


The input $x$ is expected to be either:



  • twice the bin number to get the delay for the same letter

  • twice the bin number + 1 to get the delay for different letters

What is actually stored in the string '4.2.5-75E6?3>4=4AA' is the number of keystrokes per second multiplied by $10$ and converted to ASCII. Conveniently, all resulting characters are printable.



For instance, $5.2$ is stored as chr(52) which is '4'.



Converting a character to a key bin



We use the following hash function to convert an ASCII code $c$ to an index into a lookup table containing the bin numbers in $[0..8]$:



$$i = (((ctimes 45) bmod 91)bmod 73)bmod 41$$



Main loop



The total time $t$ is updated with:



t += // add to t:
1 / p ? // if p is numeric:
p - b ? // if p is not equal to b:
3 / 8 * (g(b) + g(p)) // 0.75 * (g(b) + g(p)) / 2
: // else:
g(b | c != s) // g(b) if c == s or g(b + 1) otherwise
: // else (first iteration):
0 // leave t unchanged


where $p$ is the previous bin and $s$ is the previous character.






share|improve this answer











$endgroup$




















    2












    $begingroup$


    Jelly, 78 bytes



    “bk¶ŀqṣṁq*E’b25+45s2
    Øq;"““;“,.'”Zṙ-ØD;"s2ẎW$€3,4¦ẎœiⱮQḢ€ị¢QƑịZƊQ3.75⁵Ḋ?÷$SµƝS


    Try it online!



    How?



    “...’b25+45s2 - Link 1, keystrokes per 10 seconds: no arguments
    “...’ - base 250 integer = 379310849477441257135820
    b25 - to base 25 = [16,7,7,1,5,1,8,0,10,8,24,9,18,6,17,7,20]
    +45 - add 45 = [61,52,52,46,50,46,53,45,55,53,69,54,63,51,62,52,65]
    s2 - split into twos
    - = [[61,52],[52,46],[50,46],[53,45],[55,53],[69,54],[63,51],[62,52],[65]]
    - For: 0... 1... 2... 3... 4... 6... 8... 9... space

    Øq;"““;“,.'”Zṙ-ØD;"s2ẎW$€3,4¦ẎœiⱮQḢ€ị¢QƑịZƊQ3.75⁵Ḋ?÷$SµƝS - Main Link: list of characters
    µƝ - for each neighbouring pair:
    Øq - qwerty = ["qwertyuiop","asdfghjkl","zxcvbnm"]
    ““;“,.'” - list of lists = ["",";",",.'"]
    " - zip with:
    ; - concatenate = ["qwertyuiop","asdfghjkl;","zxcvbnm,.'"]
    Z - transpose = ["qaz","wsx","edc","rfv","tgb","yhn","ujm","ik,","ol.","p;'"]
    ṙ- - rotate left -1 = ["p;'","qaz","wsx","edc","rfv","tgb","yhn","ujm","ik,","ol."]
    ØD - digits = "0123456789"
    " - zip with:
    ; - concatenate = ["0p;'","1qaz","2wsx","3edc","4rfv","5tgb","6yhn","7ujm","8ik,","9ol."]
    s2 - split into twos = [["0p;'","1qaz"],["2wsx","3edc"],["4rfv","5tgb"],["6yhn","7ujm"],["8ik,","9ol."]]
    ¦ - sparse application...
    3,4 - ...to indices: [3,4]
    $€ - ...do: last two links as a monad for each:
    Ẏ - tighten
    W - wrap in a list = [["0p;'","1qaz"],["2wsx","3edc"],["4rfv5tgb"],["6yhn7ujm"],["8ik,","9ol."]]
    Ẏ - tighten = ["0p;'","1qaz","2wsx","3edc","4rfv5tgb","6yhn7ujm","8ik,","9ol."]
    Q - de-duplicate (the neighbouring letters)
    Ɱ - map with:
    œi - multi-dimensional index-into e.g. "fj" -> [[5,3],[6,7]]
    - (note <space> is not there so yields an empty list)
    Ḣ€ - head of each -> [5,6]
    - (...and the head of an empty list is 0)
    ¢ - call the last Link (1) as a nilad
    ị - index-into -> [[55,53],[69,54]]
    - (...and 0 indexes into the rightmost entry)
    Ɗ - last three links as a monad:
    Ƒ - invariant under?:
    Q - de-duplicate (1 if so, else 0)
    Z - transpose -> [[55,69],[53,54]]
    ị - index-into -> [55,69]
    Q - de-duplicate -> [55,69]
    $ - last two links as a monad:
    ? - if...
    Ḋ - ...condition: dequeue
    3.75 - ...then: 3.75
    ⁵ - ...else: 10 -> 3.75
    ÷ - divide -> [0.06818181818181818,0.05434782608695652]
    S - sum -> 0.12252964426877469
    S - sum





    share|improve this answer











    $endgroup$













      Your Answer





      StackExchange.ifUsing("editor", function ()
      return StackExchange.using("mathjaxEditing", function ()
      StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix)
      StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
      );
      );
      , "mathjax-editing");

      StackExchange.ifUsing("editor", function ()
      StackExchange.using("externalEditor", function ()
      StackExchange.using("snippets", function ()
      StackExchange.snippets.init();
      );
      );
      , "code-snippets");

      StackExchange.ready(function()
      var channelOptions =
      tags: "".split(" "),
      id: "200"
      ;
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function()
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled)
      StackExchange.using("snippets", function()
      createEditor();
      );

      else
      createEditor();

      );

      function createEditor()
      StackExchange.prepareEditor(
      heartbeatType: 'answer',
      autoActivateHeartbeat: false,
      convertImagesToLinks: false,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: null,
      bindNavPrevention: true,
      postfix: "",
      imageUploader:
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      ,
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      );



      );













      draft saved

      draft discarded


















      StackExchange.ready(
      function ()
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodegolf.stackexchange.com%2fquestions%2f182782%2fhow-long-does-it-take-to-type-this%23new-answer', 'question_page');

      );

      Post as a guest















      Required, but never shown

























      2 Answers
      2






      active

      oldest

      votes








      2 Answers
      2






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      4












      $begingroup$


      JavaScript (Node.js), 180 bytes





      s=>(B=Buffer)(s).map(p=c=>(b='23841410645532207643205431765001333746443'[c*45%91%73%41]*2,t+=1/p?p-b?3/8*(g(b)+g(p)):g(b|c!=s):0,p=b,s=c),t=0,g=x=>10/B('4.2.5-75E6?3>4=4AA')[x])&&t


      Try it online!



      How?



      Storing delays



      The helper function $g$ takes an integer $0le x le17$ and returns a delay in seconds.



      g = x => 10 / Buffer('4.2.5-75E6?3>4=4AA')[x]


      The input $x$ is expected to be either:



      • twice the bin number to get the delay for the same letter

      • twice the bin number + 1 to get the delay for different letters

      What is actually stored in the string '4.2.5-75E6?3>4=4AA' is the number of keystrokes per second multiplied by $10$ and converted to ASCII. Conveniently, all resulting characters are printable.



      For instance, $5.2$ is stored as chr(52) which is '4'.



      Converting a character to a key bin



      We use the following hash function to convert an ASCII code $c$ to an index into a lookup table containing the bin numbers in $[0..8]$:



      $$i = (((ctimes 45) bmod 91)bmod 73)bmod 41$$



      Main loop



      The total time $t$ is updated with:



      t += // add to t:
      1 / p ? // if p is numeric:
      p - b ? // if p is not equal to b:
      3 / 8 * (g(b) + g(p)) // 0.75 * (g(b) + g(p)) / 2
      : // else:
      g(b | c != s) // g(b) if c == s or g(b + 1) otherwise
      : // else (first iteration):
      0 // leave t unchanged


      where $p$ is the previous bin and $s$ is the previous character.






      share|improve this answer











      $endgroup$

















        4












        $begingroup$


        JavaScript (Node.js), 180 bytes





        s=>(B=Buffer)(s).map(p=c=>(b='23841410645532207643205431765001333746443'[c*45%91%73%41]*2,t+=1/p?p-b?3/8*(g(b)+g(p)):g(b|c!=s):0,p=b,s=c),t=0,g=x=>10/B('4.2.5-75E6?3>4=4AA')[x])&&t


        Try it online!



        How?



        Storing delays



        The helper function $g$ takes an integer $0le x le17$ and returns a delay in seconds.



        g = x => 10 / Buffer('4.2.5-75E6?3>4=4AA')[x]


        The input $x$ is expected to be either:



        • twice the bin number to get the delay for the same letter

        • twice the bin number + 1 to get the delay for different letters

        What is actually stored in the string '4.2.5-75E6?3>4=4AA' is the number of keystrokes per second multiplied by $10$ and converted to ASCII. Conveniently, all resulting characters are printable.



        For instance, $5.2$ is stored as chr(52) which is '4'.



        Converting a character to a key bin



        We use the following hash function to convert an ASCII code $c$ to an index into a lookup table containing the bin numbers in $[0..8]$:



        $$i = (((ctimes 45) bmod 91)bmod 73)bmod 41$$



        Main loop



        The total time $t$ is updated with:



        t += // add to t:
        1 / p ? // if p is numeric:
        p - b ? // if p is not equal to b:
        3 / 8 * (g(b) + g(p)) // 0.75 * (g(b) + g(p)) / 2
        : // else:
        g(b | c != s) // g(b) if c == s or g(b + 1) otherwise
        : // else (first iteration):
        0 // leave t unchanged


        where $p$ is the previous bin and $s$ is the previous character.






        share|improve this answer











        $endgroup$















          4












          4








          4





          $begingroup$


          JavaScript (Node.js), 180 bytes





          s=>(B=Buffer)(s).map(p=c=>(b='23841410645532207643205431765001333746443'[c*45%91%73%41]*2,t+=1/p?p-b?3/8*(g(b)+g(p)):g(b|c!=s):0,p=b,s=c),t=0,g=x=>10/B('4.2.5-75E6?3>4=4AA')[x])&&t


          Try it online!



          How?



          Storing delays



          The helper function $g$ takes an integer $0le x le17$ and returns a delay in seconds.



          g = x => 10 / Buffer('4.2.5-75E6?3>4=4AA')[x]


          The input $x$ is expected to be either:



          • twice the bin number to get the delay for the same letter

          • twice the bin number + 1 to get the delay for different letters

          What is actually stored in the string '4.2.5-75E6?3>4=4AA' is the number of keystrokes per second multiplied by $10$ and converted to ASCII. Conveniently, all resulting characters are printable.



          For instance, $5.2$ is stored as chr(52) which is '4'.



          Converting a character to a key bin



          We use the following hash function to convert an ASCII code $c$ to an index into a lookup table containing the bin numbers in $[0..8]$:



          $$i = (((ctimes 45) bmod 91)bmod 73)bmod 41$$



          Main loop



          The total time $t$ is updated with:



          t += // add to t:
          1 / p ? // if p is numeric:
          p - b ? // if p is not equal to b:
          3 / 8 * (g(b) + g(p)) // 0.75 * (g(b) + g(p)) / 2
          : // else:
          g(b | c != s) // g(b) if c == s or g(b + 1) otherwise
          : // else (first iteration):
          0 // leave t unchanged


          where $p$ is the previous bin and $s$ is the previous character.






          share|improve this answer











          $endgroup$




          JavaScript (Node.js), 180 bytes





          s=>(B=Buffer)(s).map(p=c=>(b='23841410645532207643205431765001333746443'[c*45%91%73%41]*2,t+=1/p?p-b?3/8*(g(b)+g(p)):g(b|c!=s):0,p=b,s=c),t=0,g=x=>10/B('4.2.5-75E6?3>4=4AA')[x])&&t


          Try it online!



          How?



          Storing delays



          The helper function $g$ takes an integer $0le x le17$ and returns a delay in seconds.



          g = x => 10 / Buffer('4.2.5-75E6?3>4=4AA')[x]


          The input $x$ is expected to be either:



          • twice the bin number to get the delay for the same letter

          • twice the bin number + 1 to get the delay for different letters

          What is actually stored in the string '4.2.5-75E6?3>4=4AA' is the number of keystrokes per second multiplied by $10$ and converted to ASCII. Conveniently, all resulting characters are printable.



          For instance, $5.2$ is stored as chr(52) which is '4'.



          Converting a character to a key bin



          We use the following hash function to convert an ASCII code $c$ to an index into a lookup table containing the bin numbers in $[0..8]$:



          $$i = (((ctimes 45) bmod 91)bmod 73)bmod 41$$



          Main loop



          The total time $t$ is updated with:



          t += // add to t:
          1 / p ? // if p is numeric:
          p - b ? // if p is not equal to b:
          3 / 8 * (g(b) + g(p)) // 0.75 * (g(b) + g(p)) / 2
          : // else:
          g(b | c != s) // g(b) if c == s or g(b + 1) otherwise
          : // else (first iteration):
          0 // leave t unchanged


          where $p$ is the previous bin and $s$ is the previous character.







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited 8 hours ago

























          answered 9 hours ago









          ArnauldArnauld

          80.5k797333




          80.5k797333





















              2












              $begingroup$


              Jelly, 78 bytes



              “bk¶ŀqṣṁq*E’b25+45s2
              Øq;"““;“,.'”Zṙ-ØD;"s2ẎW$€3,4¦ẎœiⱮQḢ€ị¢QƑịZƊQ3.75⁵Ḋ?÷$SµƝS


              Try it online!



              How?



              “...’b25+45s2 - Link 1, keystrokes per 10 seconds: no arguments
              “...’ - base 250 integer = 379310849477441257135820
              b25 - to base 25 = [16,7,7,1,5,1,8,0,10,8,24,9,18,6,17,7,20]
              +45 - add 45 = [61,52,52,46,50,46,53,45,55,53,69,54,63,51,62,52,65]
              s2 - split into twos
              - = [[61,52],[52,46],[50,46],[53,45],[55,53],[69,54],[63,51],[62,52],[65]]
              - For: 0... 1... 2... 3... 4... 6... 8... 9... space

              Øq;"““;“,.'”Zṙ-ØD;"s2ẎW$€3,4¦ẎœiⱮQḢ€ị¢QƑịZƊQ3.75⁵Ḋ?÷$SµƝS - Main Link: list of characters
              µƝ - for each neighbouring pair:
              Øq - qwerty = ["qwertyuiop","asdfghjkl","zxcvbnm"]
              ““;“,.'” - list of lists = ["",";",",.'"]
              " - zip with:
              ; - concatenate = ["qwertyuiop","asdfghjkl;","zxcvbnm,.'"]
              Z - transpose = ["qaz","wsx","edc","rfv","tgb","yhn","ujm","ik,","ol.","p;'"]
              ṙ- - rotate left -1 = ["p;'","qaz","wsx","edc","rfv","tgb","yhn","ujm","ik,","ol."]
              ØD - digits = "0123456789"
              " - zip with:
              ; - concatenate = ["0p;'","1qaz","2wsx","3edc","4rfv","5tgb","6yhn","7ujm","8ik,","9ol."]
              s2 - split into twos = [["0p;'","1qaz"],["2wsx","3edc"],["4rfv","5tgb"],["6yhn","7ujm"],["8ik,","9ol."]]
              ¦ - sparse application...
              3,4 - ...to indices: [3,4]
              $€ - ...do: last two links as a monad for each:
              Ẏ - tighten
              W - wrap in a list = [["0p;'","1qaz"],["2wsx","3edc"],["4rfv5tgb"],["6yhn7ujm"],["8ik,","9ol."]]
              Ẏ - tighten = ["0p;'","1qaz","2wsx","3edc","4rfv5tgb","6yhn7ujm","8ik,","9ol."]
              Q - de-duplicate (the neighbouring letters)
              Ɱ - map with:
              œi - multi-dimensional index-into e.g. "fj" -> [[5,3],[6,7]]
              - (note <space> is not there so yields an empty list)
              Ḣ€ - head of each -> [5,6]
              - (...and the head of an empty list is 0)
              ¢ - call the last Link (1) as a nilad
              ị - index-into -> [[55,53],[69,54]]
              - (...and 0 indexes into the rightmost entry)
              Ɗ - last three links as a monad:
              Ƒ - invariant under?:
              Q - de-duplicate (1 if so, else 0)
              Z - transpose -> [[55,69],[53,54]]
              ị - index-into -> [55,69]
              Q - de-duplicate -> [55,69]
              $ - last two links as a monad:
              ? - if...
              Ḋ - ...condition: dequeue
              3.75 - ...then: 3.75
              ⁵ - ...else: 10 -> 3.75
              ÷ - divide -> [0.06818181818181818,0.05434782608695652]
              S - sum -> 0.12252964426877469
              S - sum





              share|improve this answer











              $endgroup$

















                2












                $begingroup$


                Jelly, 78 bytes



                “bk¶ŀqṣṁq*E’b25+45s2
                Øq;"““;“,.'”Zṙ-ØD;"s2ẎW$€3,4¦ẎœiⱮQḢ€ị¢QƑịZƊQ3.75⁵Ḋ?÷$SµƝS


                Try it online!



                How?



                “...’b25+45s2 - Link 1, keystrokes per 10 seconds: no arguments
                “...’ - base 250 integer = 379310849477441257135820
                b25 - to base 25 = [16,7,7,1,5,1,8,0,10,8,24,9,18,6,17,7,20]
                +45 - add 45 = [61,52,52,46,50,46,53,45,55,53,69,54,63,51,62,52,65]
                s2 - split into twos
                - = [[61,52],[52,46],[50,46],[53,45],[55,53],[69,54],[63,51],[62,52],[65]]
                - For: 0... 1... 2... 3... 4... 6... 8... 9... space

                Øq;"““;“,.'”Zṙ-ØD;"s2ẎW$€3,4¦ẎœiⱮQḢ€ị¢QƑịZƊQ3.75⁵Ḋ?÷$SµƝS - Main Link: list of characters
                µƝ - for each neighbouring pair:
                Øq - qwerty = ["qwertyuiop","asdfghjkl","zxcvbnm"]
                ““;“,.'” - list of lists = ["",";",",.'"]
                " - zip with:
                ; - concatenate = ["qwertyuiop","asdfghjkl;","zxcvbnm,.'"]
                Z - transpose = ["qaz","wsx","edc","rfv","tgb","yhn","ujm","ik,","ol.","p;'"]
                ṙ- - rotate left -1 = ["p;'","qaz","wsx","edc","rfv","tgb","yhn","ujm","ik,","ol."]
                ØD - digits = "0123456789"
                " - zip with:
                ; - concatenate = ["0p;'","1qaz","2wsx","3edc","4rfv","5tgb","6yhn","7ujm","8ik,","9ol."]
                s2 - split into twos = [["0p;'","1qaz"],["2wsx","3edc"],["4rfv","5tgb"],["6yhn","7ujm"],["8ik,","9ol."]]
                ¦ - sparse application...
                3,4 - ...to indices: [3,4]
                $€ - ...do: last two links as a monad for each:
                Ẏ - tighten
                W - wrap in a list = [["0p;'","1qaz"],["2wsx","3edc"],["4rfv5tgb"],["6yhn7ujm"],["8ik,","9ol."]]
                Ẏ - tighten = ["0p;'","1qaz","2wsx","3edc","4rfv5tgb","6yhn7ujm","8ik,","9ol."]
                Q - de-duplicate (the neighbouring letters)
                Ɱ - map with:
                œi - multi-dimensional index-into e.g. "fj" -> [[5,3],[6,7]]
                - (note <space> is not there so yields an empty list)
                Ḣ€ - head of each -> [5,6]
                - (...and the head of an empty list is 0)
                ¢ - call the last Link (1) as a nilad
                ị - index-into -> [[55,53],[69,54]]
                - (...and 0 indexes into the rightmost entry)
                Ɗ - last three links as a monad:
                Ƒ - invariant under?:
                Q - de-duplicate (1 if so, else 0)
                Z - transpose -> [[55,69],[53,54]]
                ị - index-into -> [55,69]
                Q - de-duplicate -> [55,69]
                $ - last two links as a monad:
                ? - if...
                Ḋ - ...condition: dequeue
                3.75 - ...then: 3.75
                ⁵ - ...else: 10 -> 3.75
                ÷ - divide -> [0.06818181818181818,0.05434782608695652]
                S - sum -> 0.12252964426877469
                S - sum





                share|improve this answer











                $endgroup$















                  2












                  2








                  2





                  $begingroup$


                  Jelly, 78 bytes



                  “bk¶ŀqṣṁq*E’b25+45s2
                  Øq;"““;“,.'”Zṙ-ØD;"s2ẎW$€3,4¦ẎœiⱮQḢ€ị¢QƑịZƊQ3.75⁵Ḋ?÷$SµƝS


                  Try it online!



                  How?



                  “...’b25+45s2 - Link 1, keystrokes per 10 seconds: no arguments
                  “...’ - base 250 integer = 379310849477441257135820
                  b25 - to base 25 = [16,7,7,1,5,1,8,0,10,8,24,9,18,6,17,7,20]
                  +45 - add 45 = [61,52,52,46,50,46,53,45,55,53,69,54,63,51,62,52,65]
                  s2 - split into twos
                  - = [[61,52],[52,46],[50,46],[53,45],[55,53],[69,54],[63,51],[62,52],[65]]
                  - For: 0... 1... 2... 3... 4... 6... 8... 9... space

                  Øq;"““;“,.'”Zṙ-ØD;"s2ẎW$€3,4¦ẎœiⱮQḢ€ị¢QƑịZƊQ3.75⁵Ḋ?÷$SµƝS - Main Link: list of characters
                  µƝ - for each neighbouring pair:
                  Øq - qwerty = ["qwertyuiop","asdfghjkl","zxcvbnm"]
                  ““;“,.'” - list of lists = ["",";",",.'"]
                  " - zip with:
                  ; - concatenate = ["qwertyuiop","asdfghjkl;","zxcvbnm,.'"]
                  Z - transpose = ["qaz","wsx","edc","rfv","tgb","yhn","ujm","ik,","ol.","p;'"]
                  ṙ- - rotate left -1 = ["p;'","qaz","wsx","edc","rfv","tgb","yhn","ujm","ik,","ol."]
                  ØD - digits = "0123456789"
                  " - zip with:
                  ; - concatenate = ["0p;'","1qaz","2wsx","3edc","4rfv","5tgb","6yhn","7ujm","8ik,","9ol."]
                  s2 - split into twos = [["0p;'","1qaz"],["2wsx","3edc"],["4rfv","5tgb"],["6yhn","7ujm"],["8ik,","9ol."]]
                  ¦ - sparse application...
                  3,4 - ...to indices: [3,4]
                  $€ - ...do: last two links as a monad for each:
                  Ẏ - tighten
                  W - wrap in a list = [["0p;'","1qaz"],["2wsx","3edc"],["4rfv5tgb"],["6yhn7ujm"],["8ik,","9ol."]]
                  Ẏ - tighten = ["0p;'","1qaz","2wsx","3edc","4rfv5tgb","6yhn7ujm","8ik,","9ol."]
                  Q - de-duplicate (the neighbouring letters)
                  Ɱ - map with:
                  œi - multi-dimensional index-into e.g. "fj" -> [[5,3],[6,7]]
                  - (note <space> is not there so yields an empty list)
                  Ḣ€ - head of each -> [5,6]
                  - (...and the head of an empty list is 0)
                  ¢ - call the last Link (1) as a nilad
                  ị - index-into -> [[55,53],[69,54]]
                  - (...and 0 indexes into the rightmost entry)
                  Ɗ - last three links as a monad:
                  Ƒ - invariant under?:
                  Q - de-duplicate (1 if so, else 0)
                  Z - transpose -> [[55,69],[53,54]]
                  ị - index-into -> [55,69]
                  Q - de-duplicate -> [55,69]
                  $ - last two links as a monad:
                  ? - if...
                  Ḋ - ...condition: dequeue
                  3.75 - ...then: 3.75
                  ⁵ - ...else: 10 -> 3.75
                  ÷ - divide -> [0.06818181818181818,0.05434782608695652]
                  S - sum -> 0.12252964426877469
                  S - sum





                  share|improve this answer











                  $endgroup$




                  Jelly, 78 bytes



                  “bk¶ŀqṣṁq*E’b25+45s2
                  Øq;"““;“,.'”Zṙ-ØD;"s2ẎW$€3,4¦ẎœiⱮQḢ€ị¢QƑịZƊQ3.75⁵Ḋ?÷$SµƝS


                  Try it online!



                  How?



                  “...’b25+45s2 - Link 1, keystrokes per 10 seconds: no arguments
                  “...’ - base 250 integer = 379310849477441257135820
                  b25 - to base 25 = [16,7,7,1,5,1,8,0,10,8,24,9,18,6,17,7,20]
                  +45 - add 45 = [61,52,52,46,50,46,53,45,55,53,69,54,63,51,62,52,65]
                  s2 - split into twos
                  - = [[61,52],[52,46],[50,46],[53,45],[55,53],[69,54],[63,51],[62,52],[65]]
                  - For: 0... 1... 2... 3... 4... 6... 8... 9... space

                  Øq;"““;“,.'”Zṙ-ØD;"s2ẎW$€3,4¦ẎœiⱮQḢ€ị¢QƑịZƊQ3.75⁵Ḋ?÷$SµƝS - Main Link: list of characters
                  µƝ - for each neighbouring pair:
                  Øq - qwerty = ["qwertyuiop","asdfghjkl","zxcvbnm"]
                  ““;“,.'” - list of lists = ["",";",",.'"]
                  " - zip with:
                  ; - concatenate = ["qwertyuiop","asdfghjkl;","zxcvbnm,.'"]
                  Z - transpose = ["qaz","wsx","edc","rfv","tgb","yhn","ujm","ik,","ol.","p;'"]
                  ṙ- - rotate left -1 = ["p;'","qaz","wsx","edc","rfv","tgb","yhn","ujm","ik,","ol."]
                  ØD - digits = "0123456789"
                  " - zip with:
                  ; - concatenate = ["0p;'","1qaz","2wsx","3edc","4rfv","5tgb","6yhn","7ujm","8ik,","9ol."]
                  s2 - split into twos = [["0p;'","1qaz"],["2wsx","3edc"],["4rfv","5tgb"],["6yhn","7ujm"],["8ik,","9ol."]]
                  ¦ - sparse application...
                  3,4 - ...to indices: [3,4]
                  $€ - ...do: last two links as a monad for each:
                  Ẏ - tighten
                  W - wrap in a list = [["0p;'","1qaz"],["2wsx","3edc"],["4rfv5tgb"],["6yhn7ujm"],["8ik,","9ol."]]
                  Ẏ - tighten = ["0p;'","1qaz","2wsx","3edc","4rfv5tgb","6yhn7ujm","8ik,","9ol."]
                  Q - de-duplicate (the neighbouring letters)
                  Ɱ - map with:
                  œi - multi-dimensional index-into e.g. "fj" -> [[5,3],[6,7]]
                  - (note <space> is not there so yields an empty list)
                  Ḣ€ - head of each -> [5,6]
                  - (...and the head of an empty list is 0)
                  ¢ - call the last Link (1) as a nilad
                  ị - index-into -> [[55,53],[69,54]]
                  - (...and 0 indexes into the rightmost entry)
                  Ɗ - last three links as a monad:
                  Ƒ - invariant under?:
                  Q - de-duplicate (1 if so, else 0)
                  Z - transpose -> [[55,69],[53,54]]
                  ị - index-into -> [55,69]
                  Q - de-duplicate -> [55,69]
                  $ - last two links as a monad:
                  ? - if...
                  Ḋ - ...condition: dequeue
                  3.75 - ...then: 3.75
                  ⁵ - ...else: 10 -> 3.75
                  ÷ - divide -> [0.06818181818181818,0.05434782608695652]
                  S - sum -> 0.12252964426877469
                  S - sum






                  share|improve this answer














                  share|improve this answer



                  share|improve this answer








                  edited 5 hours ago

























                  answered 5 hours ago









                  Jonathan AllanJonathan Allan

                  53.8k535173




                  53.8k535173



























                      draft saved

                      draft discarded
















































                      If this is an answer to a challenge…



                      • …Be sure to follow the challenge specification. However, please refrain from exploiting obvious loopholes. Answers abusing any of the standard loopholes are considered invalid. If you think a specification is unclear or underspecified, comment on the question instead.


                      • …Try to optimize your score. For instance, answers to code-golf challenges should attempt to be as short as possible. You can always include a readable version of the code in addition to the competitive one.
                        Explanations of your answer make it more interesting to read and are very much encouraged.


                      • …Include a short header which indicates the language(s) of your code and its score, as defined by the challenge.


                      More generally…



                      • …Please make sure to answer the question and provide sufficient detail.


                      • …Avoid asking for help, clarification or responding to other answers (use comments instead).




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function ()
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodegolf.stackexchange.com%2fquestions%2f182782%2fhow-long-does-it-take-to-type-this%23new-answer', 'question_page');

                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      Popular posts from this blog

                      Францішак Багушэвіч Змест Сям'я | Біяграфія | Творчасць | Мова Багушэвіча | Ацэнкі дзейнасці | Цікавыя факты | Спадчына | Выбраная бібліяграфія | Ушанаванне памяці | У філатэліі | Зноскі | Літаратура | Спасылкі | НавігацыяЛяхоўскі У. Рупіўся дзеля Бога і людзей: Жыццёвы шлях Лявона Вітан-Дубейкаўскага // Вольскі і Памідораў з песняй пра немца Адвакат, паэт, народны заступнік Ашмянскі веснікВ Минске появится площадь Богушевича и улица Сырокомли, Белорусская деловая газета, 19 июля 2001 г.Айцец беларускай нацыянальнай ідэі паўстаў у бронзе Сяргей Аляксандравіч Адашкевіч (1918, Мінск). 80-я гады. Бюст «Францішак Багушэвіч».Яўген Мікалаевіч Ціхановіч. «Партрэт Францішка Багушэвіча»Мікола Мікалаевіч Купава. «Партрэт зачынальніка новай беларускай літаратуры Францішка Багушэвіча»Уладзімір Іванавіч Мелехаў. На помніку «Змагарам за родную мову» Барэльеф «Францішак Багушэвіч»Памяць пра Багушэвіча на Віленшчыне Страчаная сталіца. Беларускія шыльды на вуліцах Вільні«Krynica». Ideologia i przywódcy białoruskiego katolicyzmuФранцішак БагушэвічТворы на knihi.comТворы Францішка Багушэвіча на bellib.byСодаль Уладзімір. Францішак Багушэвіч на Лідчыне;Луцкевіч Антон. Жыцьцё і творчасьць Фр. Багушэвіча ў успамінах ягоных сучасьнікаў // Запісы Беларускага Навуковага таварыства. Вільня, 1938. Сшытак 1. С. 16-34.Большая российская1188761710000 0000 5537 633Xn9209310021619551927869394п

                      На ростанях Змест Гісторыя напісання | Месца дзеяння | Час дзеяння | Назва | Праблематыка трылогіі | Аўтабіяграфічнасць | Трылогія ў тэатры і кіно | Пераклады | У культуры | Зноскі Літаратура | Спасылкі | НавігацыяДагледжаная версіяправерана1 зменаДагледжаная версіяправерана1 зменаАкадэмік МІЦКЕВІЧ Канстанцін Міхайлавіч (Якуб Колас) Прадмова М. І. Мушынскага, доктара філалагічных навук, члена-карэспандэнта Нацыянальнай акадэміі навук Рэспублікі Беларусь, прафесараНашаніўцы ў трылогіі Якуба Коласа «На ростанях»: вобразы і прататыпы125 лет Янке МавруКнижно-документальная выставка к 125-летию со дня рождения Якуба Коласа (1882—1956)Колас Якуб. Новая зямля (паэма), На ростанях (трылогія). Сулкоўскі Уладзімір. Радзіма Якуба Коласа (серыял жывапісных палотнаў)Вокладка кнігіІлюстрацыя М. С. БасалыгіНа ростаняхАўдыёверсія трылогііВ. Жолтак У Люсiнскай школе 1959

                      Беларусь Змест Назва Гісторыя Геаграфія Сімволіка Дзяржаўны лад Палітычныя партыі Міжнароднае становішча і знешняя палітыка Адміністрацыйны падзел Насельніцтва Эканоміка Культура і грамадства Сацыяльная сфера Узброеныя сілы Заўвагі Літаратура Спасылкі НавігацыяHGЯOiТоп-2011 г. (па версіі ej.by)Топ-2013 г. (па версіі ej.by)Топ-2016 г. (па версіі ej.by)Топ-2017 г. (па версіі ej.by)Нацыянальны статыстычны камітэт Рэспублікі БеларусьШчыльнасць насельніцтва па краінахhttp://naviny.by/rubrics/society/2011/09/16/ic_articles_116_175144/А. Калечыц, У. Ксяндзоў. Спробы засялення краю неандэртальскім чалавекам.І ў Менску былі мамантыА. Калечыц, У. Ксяндзоў. Старажытны каменны век (палеаліт). Першапачатковае засяленне тэрыторыіГ. Штыхаў. Балты і славяне ў VI—VIII стст.М. Клімаў. Полацкае княства ў IX—XI стст.Г. Штыхаў, В. Ляўко. Палітычная гісторыя Полацкай зямліГ. Штыхаў. Дзяржаўны лад у землях-княствахГ. Штыхаў. Дзяржаўны лад у землях-княствахБеларускія землі ў складзе Вялікага Княства ЛітоўскагаЛюблінская унія 1569 г."The Early Stages of Independence"Zapomniane prawdy25 гадоў таму было аб'яўлена, што Язэп Пілсудскі — беларус (фота)Наша вадаДакументы ЧАЭС: Забруджванне тэрыторыі Беларусі « ЧАЭС Зона адчужэнняСведения о политических партиях, зарегистрированных в Республике Беларусь // Министерство юстиции Республики БеларусьСтатыстычны бюлетэнь „Полаўзроставая структура насельніцтва Рэспублікі Беларусь на 1 студзеня 2012 года і сярэднегадовая колькасць насельніцтва за 2011 год“Индекс человеческого развития Беларуси — не было бы нижеБеларусь занимает первое место в СНГ по индексу развития с учетом гендерного факцёраНацыянальны статыстычны камітэт Рэспублікі БеларусьКанстытуцыя РБ. Артыкул 17Трансфармацыйныя задачы БеларусіВыйсце з крызісу — далейшае рэфармаванне Беларускі рубель — сусветны лідар па дэвальвацыяхПра змену коштаў у кастрычніку 2011 г.Бядней за беларусаў у СНД толькі таджыкіСярэдні заробак у верасні дасягнуў 2,26 мільёна рублёўЭканомікаГаласуем за ТОП-100 беларускай прозыСучасныя беларускія мастакіАрхитектура Беларуси BELARUS.BYА. Каханоўскі. Культура Беларусі ўсярэдзіне XVII—XVIII ст.Анталогія беларускай народнай песні, гуказапісы спеваўБеларускія Музычныя IнструментыБеларускі рок, які мы страцілі. Топ-10 гуртоў«Мясцовы час» — нязгаслая легенда беларускай рок-музыкіСЯРГЕЙ БУДКІН. МЫ НЯ ЗНАЕМ СВАЁЙ МУЗЫКІМ. А. Каладзінскі. НАРОДНЫ ТЭАТРМагнацкія культурныя цэнтрыПублічная дыскусія «Беларуская новая пьеса: без беларускай мовы ці беларуская?»Беларускія драматургі па-ранейшаму лепш ставяцца за мяжой, чым на радзіме«Працэс незалежнага кіно пайшоў, і дзяржаву турбуе яго непадкантрольнасць»Беларускія філосафы ў пошуках прасторыВсе идём в библиотекуАрхіваванаАб Нацыянальнай праграме даследавання і выкарыстання касмічнай прасторы ў мірных мэтах на 2008—2012 гадыУ космас — разам.У суседнім з Барысаўскім раёне пабудуюць Камандна-вымяральны пунктСвяты і абрады беларусаў«Мірныя бульбашы з малой краіны» — 5 непраўдзівых стэрэатыпаў пра БеларусьМ. Раманюк. Беларускае народнае адзеннеУ Беларусі скарачаецца колькасць злачынстваўЛукашэнка незадаволены мінскімі ўладамі Крадзяжы складаюць у Мінску каля 70% злачынстваў Узровень злачыннасці ў Мінскай вобласці — адзін з самых высокіх у краіне Генпракуратура аналізуе стан са злачыннасцю ў Беларусі па каэфіцыенце злачыннасці У Беларусі стабілізавалася крымінагеннае становішча, лічыць генпракурорЗамежнікі сталі здзяйсняць у Беларусі больш злачынстваўМУС Беларусі турбуе рост рэцыдыўнай злачыннасціЯ з ЖЭСа. Дазволіце вас абкрасці! Рэйтынг усіх службаў і падраздзяленняў ГУУС Мінгарвыканкама вырасАб КДБ РБГісторыя Аператыўна-аналітычнага цэнтра РБГісторыя ДКФРТаможняagentura.ruБеларусьBelarus.by — Афіцыйны сайт Рэспублікі БеларусьСайт урада БеларусіRadzima.org — Збор архітэктурных помнікаў, гісторыя Беларусі«Глобус Беларуси»Гербы и флаги БеларусиАсаблівасці каменнага веку на БеларусіА. Калечыц, У. Ксяндзоў. Старажытны каменны век (палеаліт). Першапачатковае засяленне тэрыторыіУ. Ксяндзоў. Сярэдні каменны век (мезаліт). Засяленне краю плямёнамі паляўнічых, рыбакоў і збіральнікаўА. Калечыц, М. Чарняўскі. Плямёны на тэрыторыі Беларусі ў новым каменным веку (неаліце)А. Калечыц, У. Ксяндзоў, М. Чарняўскі. Гаспадарчыя заняткі ў каменным векуЭ. Зайкоўскі. Духоўная культура ў каменным векуАсаблівасці бронзавага веку на БеларусіФарміраванне супольнасцей ранняга перыяду бронзавага векуФотографии БеларусиРоля беларускіх зямель ва ўтварэнні і ўмацаванні ВКЛВ. Фадзеева. З гісторыі развіцця беларускай народнай вышыўкіDMOZGran catalanaБольшая российскаяBritannica (анлайн)Швейцарскі гістарычны15325917611952699xDA123282154079143-90000 0001 2171 2080n9112870100577502ge128882171858027501086026362074122714179пппппп